Я знаю, что у меня самые экзотические случаи использования, но мне очень нравятся тесты, поэтому я хотел бы проверить, работает ли IHandler
так, как я предполагаю. Проблема в том, что я не могу понять, как назвать это программно:Вызов обработчика из теста интеграции
IWorkbenchPage workbenchPage = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage()
IWorkbenchWindow site = workbenchPage.getWorkbenchWindow();
Command command = ((ICommandService) site.getService(ICommandService.class)).getCommand(commandId);
final IHandlerService service = (IHandlerService) site.getService(IHandlerService.class);
final Event trigger = new Event(); // or trigger = null
ExecutionEvent executionEvent = service.createExecutionEvent(command, trigger);
command.executeWithChecks(executionEvent);
обработчик вызывается, но ExecutionEvent
правильно не заполнены (например, HandlerUtil.getActiveEditor(ExecutionEvent)
возвращает нулевое значение, даже если я только что открыл редактор).
Как правильно называть пользователя IHandler
?
Очевидно, вы можете получить 'IEvaluationContext' из' IHandlerService.getCurrentState() '... или, по крайней мере, сейчас мои тесты работают. –