我从哪里开始编写插件测试?我已经编写了一些玩具插件,并希望开始使用插件进行TDD。

最佳答案

如果您的插件是带有SWT的RCP(Rich Client Platform)插件,则可以使用SWTBot
那些测试可以封装到JUnit中:





如果您的插件基于OSGi,则必须知道OSGi捆绑包运行它自己的类加载器,因此这些类似乎不在同一软件包中。
参见“ Is OSGi the enemy of JUnit tests?


  将您的测试插件设为fragment
  一个问题是其他插件无法访问片段中定义的类(正如Patrick Paulin在a more detailed discussion about fragments in unit tests中指出的那样)。
  另一个问题是片段中的plugin.xml被忽略。因此,您测试插件无法做出贡献


根据Patrick的文章:


  片段看起来很像是从外部插入的插件。它在您的工作空间中表示为一个单独的项目,它包含一个描述其内容的清单,并以jar形式构建和部署。片段的不同之处在于,它在运行时将其资源贡献给单个主机插件。因此,片段中的类是由主机插件的类加载器加载的。





  通过将单元测试放在片段中,我们可以为测试提供对被测类的非公共方法的访问。另外,由于源代码和测试代码实际上是同一插件的一部分,因此没有与未导出的软件包有关的问题。测试类将有权访问插件中的所有软件包,无论是否导出。
  
  这种基于片段的方法的主要缺点是很难将单元测试聚合到主测试套件中。创建包含一个片段中的测试的测试套件很容易,但是创建包含多个片段中的测试的套件并不容易。




如果您的插件仅需要一些简单的测试,那么JUnit test套件就足够了


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

09-10 08:39
查看更多