【问题标题】:JUnit Testing for Eclipse RCP. How to do it?Eclipse RCP 的 JUnit 测试。怎么做?
【发布时间】:2014-02-26 16:03:16
【问题描述】:

我想在继续开发代码的同时为我的 Eclipse RCP 编写 JUnit 测试。启动应用程序时,不同的插件会初始化各种插件/类的变量(主要在它们的启动方法中),这些变量是正确功能所需的。 如果这个初始化没有发生,就不可能测试代码,因为它依赖于那些值。

如何在不创建大量虚拟值的情况下解决此问题? 测试 Eclipse RCP 的一般方法是什么?

【问题讨论】:

    标签: eclipse testing junit rcp


    【解决方案1】:

    您面临一个常见问题:依赖项太多。你需要剪掉它们。

    使用 Eclipse 3,这会有些困难。尝试将代码拆分为依赖于运行的 Eclipse 平台和其他所有内容的内容。 Eclipse 经常使用接口,所以你可以使用mocks 来测试很多东西。

    使用 e4,事情变得更加简单,因为将注入许多服务,从而使模拟和测试变得更加容易。

    但目标必须始终是尽可能多地编写不依赖于 SWT 或平台的代码。如果需要,请创建自己的接口。运行时实现只是包装 Eclipse 代码。对于测试,您可以使用 mocks 来模拟 Eclipse 运行时。

    【讨论】:

      【解决方案2】:

      您可以使用JUnit plugintest 运行测试,这将启动插件框架并允许测试插件。但这通常只能解决一些问题。最好的建议是Aaron 建议尽可能地分离功能,使您的所有实际代码都只是普通的旧 java 对象,您可以正常测试。 Eclipse 的所有依赖项都在不同的类中,并且尽可能保持精简,以便它们不需要测试。

      这可能很难实现,因此可能需要模拟。我有时使用的另一个技巧是使用 Java 反射来更改私有字段的值,see this question

      【讨论】:

      • 感谢您提出一种测试正在运行的应用程序的方法!
      猜你喜欢
      • 2011-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多