Ben*_*n S 21 java tdd unit-testing blackberry
对于我的大学课程,我们正在开发一个多线程Blackberry应用程序,它允许我们使用蓝牙扫描运行我们应用程序的其他设备,然后通过Wifi接口通过TCP传输文件,实现NAT遍历,同时记录我们的GPS位置.(这是RIM赞助的计算机网络课程,如果还不明显的话.)
我越来越喜欢测试驱动开发,并将用它来开发我的家庭作业.但是,由于非法修饰符,我在测试期间扩展或以其他方式调用的任何Blackberry类都会给出一个ClassFormatError.我认为这个错误是由于带有Blackberry代码的jar必须是专门为其专有JVM编译的.
到目前为止,我已经使用代理模式并实现了代理的模拟对象.然而,由于我继承了许多原生Blackberry类,因此这变得非常繁琐.
我还想避免在可能的情况下启动Blackberry模拟器.启动它可能需要几分钟,这对于单元测试来说是不切实际和烦人的.
有没有简单的方法来单元测试我的Blackberry代码?
Mak*_*tar 19
你是关于模拟的正确方法,但我不建议你在J2SE平台上测试Blackberry功能.我认为应该使用代理和模型,以防本机源中没有可用的测试数据,例如:
"扫描其他设备" - 没有其他设备,但你想测试扫描功能
"通过Wifi接口的TCP" - 你想在Storm(没有WiFi)上测试它
"记录我们的GPS位置" - 设备位置是静态的,但是你想测试其他地方
然后,您可以使用Blackberry平台模拟此类功能:
BlackBerry GPS位置模型
您仍然可以使用相同的名称和签名从头开始在J2SE上重现BlackBerry API类.那假定您必须自己实现所有类功能.
这将是一个非常好的选择,但到目前为止,我看不到如何做到这一点.
测试涉及应用程序运行,这涉及平台模拟.如果没有运行整个UI模拟器,可以测试j2me代码,但我不知道.
您可以做的是在Java Standard Edition上测试一些业务逻辑,并尽可能减少代码更改.
你仍然需要在模拟器上运行平台相关的功能测试,但是你可以在一个应用程序中完成它,这将是一组单元测试,就像ChrisW已经说过的那样.只需逐个运行测试方法并在屏幕上输出结果:
Method1 - Passed - 0.03 s
Method2 - Passed - 1.30 s
Method3 - Passed - 0.25 s
http://j2meunit.sourceforge.net/:
J2MEUnit是一个Java 2 Micro Edition(J2ME)库,包含J2ME应用程序的单元测试框架.它基于原始JUnit的源代码,这是Java,J2SE标准(桌面)版本的成功单元测试框架.
使用J2MEUnit和Eclipse Quick Tutorial对J2ME应用程序进行单元测试,
以设置和学习J2MEUnit
http://jmunit.sourceforge.net/:
JMUnit是基于JUnit的Java ME(J2ME)的单元测试框架.它具有以下功能:
- 适用于Sun仿真器和实际设备.
- 很小(即使在旧的MIDP 1.0设备上也可以运行测试).
- 具有用于检查测试失败的全面Assert方法集合.
- 支持TestCases和TestSuite.
- 包括用于在连续构建中运行JMUnit测试的Ant任务.
- 性能监控类的灵感来自JUnitPerf.
基于jmunit的RIM Blackberry单元测试库
http://sourceforge.net/projects/b-unittesting/
BlackBerry支持社区论坛:如何对我的Blackberry应用程序进行单元测试
如何 - 使用BlackBerry Simulator自动进行测试