2

我使用SWTBot编写了一个 GUI 测试来测试 Extract Method 重构。我用select语句提取成一个方法。但是,当我运行单元测试时,提取方法重构菜单项被禁用。因此,SWTBot 无法调用重构。editor.selectRange()

当我们更改org.eclipse.jdt.ui.actions.ExtractMethodAction为始终启用“提取方法...”菜单项时,我们的 SWTBot 将通过。org.eclipse.jdt.ui但是,SWTBot 应该让我们在不破解插件的情况下选择菜单项。

包含上述单元测试的整个项目可在 github 获得。我还在SWTBot和SWTBot bug tracking system的 Eclipse 论坛上报告了这个问题。但是,我们还没有收到来自论坛的解决方案。

4

1 回答 1

1

也许您必须刷新所有未决事件才能启用菜单。在尝试单击菜单之前添加此循环:

while(Display.getDefault().readAndDispatch());

[编辑] 我认为问题在于菜单是通过扩展点或条件启用的。检查菜单或基础操作的所有 plugin.xml 文件,以及在何种情况下启用。

要触发条件,您可能必须通知工作台有关新选择的信息。检查http://www.eclipse.org/articles/Article-WorkbenchSelections/article.htmlhttp://www.eclipse.org/articles/article.php?file=Article-action-contribution/index.html

于 2010-10-06T14:54:46.140 回答