编写 Eclipse JUnit 插件测试

7

我该从哪里开始编写插件测试呢?我已经写了一些玩具插件,现在想开始使用TDD来测试我的插件。


你想测试哪种功能呢?实际上,JUnit插件测试只是普通的JUnit测试,与Eclipse无关。唯一的区别是,如果你将JUnit测试作为JUnit插件测试运行,它们将在Eclipse实例内运行。 - Zsolt Török
从插件测试中,你如何与Eclipse进行交互?例如,如何通过编程方式发布事件来执行某些操作? - zeroin23
1个回答

14
如果您的插件是基于RCP(富客户端平台)插件,并且使用了SWT,则可以使用SWTBot
这些测试可以封装到JUnit中:

Run-as-config-create


如果您的插件基于OSGi,您必须意识到OSGi捆绑运行它自己的类加载器,因此类似的类不在同一包中。
请参阅 "OSGi是否是JUnit测试的敌人?"

将您的测试插件制作为片段
一个问题是其他插件无法访问在片段中定义的类(正如Patrick Paulin在有关单元测试中片段的更详细讨论中所指出的)。
另一个问题是忽略片段中的plugin.xml。因此,您的测试插件无法做出贡献。

从Patrick的文章中:

外观上,片段看起来很像插件。它在您的工作区中表示为单独的项目,包含描述其内容的清单,构建并部署为jar。使片段不同的是,它在运行时向单个主机插件贡献其资源。片段中的类因此由主机插件的类加载器加载。

plugin unit test

通过将我们的单元测试放在片段中,我们可以让测试访问被测试类的非公共方法。而且,由于源代码和测试代码实际上是同一个插件的一部分,所以不存在与未导出包相关的问题。测试类将可以访问插件中的所有包,无论它们是否被导出。
这种基于片段的方法的主要缺点是很难将单元测试聚合到主测试套件中。虽然很容易创建一个包含片段内测试的测试套件,但很难创建一个包含多个片段中测试的测试套件。
如果您的插件只需要进行简单的测试,那么一个JUnit测试套件就足够了。

在test.yourpackage包中创建一个名为BookTest的新测试用例,在该包上右键单击并选择“New > JUnit Test Case”。

new test case


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接