我们将为J2ME建议哪些单元测试框架?

时间:2020-03-06 14:32:06  来源:igfitidea点击:

我是J2ME的新手,即将开始我的第一个严肃项目。我在测试方面的经验也不太丰富。我正在寻找J2ME的单元测试框架。

到目前为止,我已经看过J2MEUnit,但是现在还没有得到很好的支持。我已经看过JavaTest Harness,但是我不知道这不是矫kill过正。

请告诉我我们建议有关以下方面的框架:
*实施测试的简便性
*支持社区和工具
*与应用程序认证过程的兼容性
*与IDE集成(Eclipse,NetBeans)
*我们认为重要的其他方面...

谢谢,

解决方案

阿萨夫

嗯...我自己还没有开发移动应用程序,但是我认为J2MEUnit是更好的选择,因为它基于原始的JUnit,JUnit具有很大的社区并受大多数IDE的支持,因此至少在进行那些测试时应该很容易这并不直接取决于IDE中的移动硬件。

更重要的可能是J2MEUnit与ANT集成在一起,因此我们可以在每个构建版本中运行测试。

  • MoMEUnit提供有关测试的非常有用的信息。易于移植并且与Ant兼容。缺点(或者可能不是缺点)是,它需要每个测试类都有一个使用大量继承的独特测试方法。
  • JMEUnit。 (J2MEUnit和JMUnit的未来合并)JMUnit不支持Ant,但接口类似于MoMEUnit。 J2MEUnit并未在测试中提供非常有用的信息。在两个框架中的测试创建都在某种程度上很复杂。 J2MEUnit确实支持Ant。那就是为什么两个框架的合并会非常有趣的原因(他们在int上工作了一年或者更短的时间)

这是一家从事移动游戏的西班牙公司的博客条目。比较许多框架,结论是(翻译):

我的经验:由于J2ME中缺少"反射"功能,因此我使用J2ME单元并设置测试装置很麻烦,但是它们的构建方式始终相同,因此模板可以节省大量时间。
我打算本周尝试MoME Unit,只是为了检查其更简单的模型

  • JMUnit
  • MoME部门
  • J2ME单元
  • 索尼爱立信Movil Java部门

一些J2ME的测试单元框架:

我发现的一个相关文档(发布问题后)是"测试无线Java应用程序"。它在文档末尾附近描述了J2MEUnit。

也看一眼MockME。

www.mockme.org

从他们的网站:
" MockME是Java SE的Java ME模拟对象。MockME使我们可以编写真实的单元测试,而不必在电话上运行它们。我们甚至可以使用动态模拟对象框架(例如EasyMock),该框架使我们可以模拟Java ME中的任何对象!MockME集成了用于单元测试的最佳工具,包括JUnit,EasyMock和DDSteps。通过使Java ME API具有可仿真性,我们可以按照自己想要的方式为Java ME应用程序编写单元测试。"

J2SE上的MicroEmulator + JUnit

我最初使用JMUnit之类的工具,但是最近我切换到了J2SE上的标准JUnit + MicroEmulator。这类似于使用MockME,但改为使用MicroEmulator。我更喜欢MicroEmulator,因为它具有组件的实际实现,并且我们可以在其上运行整个MIDlet。我自己从来没有使用过MockME。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

我所有的非GUI单元测试都是通过将MicroEmulator用作库来运行的。这样做的好处是所有JUnit工具都能无缝地工作,特别是Ant,Maven,大多数IDE和Continuous Integration工具。当它在J2SE上运行时,我们还可以使用诸如泛型和JUnit批注之类的功能,这使编写单元测试变得更好。

诸如RecordStore之类的某些组件在工作之前需要进行一些设置。这是通过MIDletBridge.setMicroEmulator()完成的。

使用MicroEmulator的优势还在于,可以自定义某些组件的实现,例如RecordStore。我使用了一个内存中的RecordStore,它在每次测试之前都会重新创建,以便确保测试独立运行。

真实设备

上述方法无法在任何实际设备上运行。但是,我认为,仅GUI和验收测试需要在实际设备上运行。为此,可以在Symbian设备上使用mVNC这样的工具以及T-Plan Robot。但是,我只能使mVNC通过蓝牙工作,而且速度非常慢。

段落数量不匹配