在Android上使用JMock

Ron*_*ero 7 android jmock classloader

如何在Android上使用JMock?我几个职位称其不可能的,但肯定有一些办法做到这一点?

问题似乎是让Android甚至能够识别JMock jar文件.那么也许有一个解决方案,将jar放入资产并制作自定义类加载器?这看起来很麻烦,但听起来有点像吗?

bye*_*yeo 8

我让JMock在Android开源测试项目中工作.

是的:JMock代码在您手中的设备上执行;-)

我用过:

  • JMock的-2.5.1.jar
  • 重新包装的 hamcrest-all-1.1.jar(我会解释)
  • JMock的-junit3-2.5.1.jar

有关Android JMock测试用例,请参阅以下内容:http: //github.com/olibye/ToneDial/blob/master/ToneDialTest/src/net/xpdeveloper/dialer/test/TestDialServiceTest.java

以下是我必须克服的三个问题:


Hamcrest包装

Hamcrest的多重打包无法通过Android软件包验证.

您在Android ADK中遇到的错误是: - 生成最终存档时出错:重复条目:LICENSE.txt

unzip hamcrest-core-1.1.jar unzip hamcrest-library-1.1.jar在同一目录下.

这第二次解压缩会覆盖MANIFEST.MF和LICENCE.TXT.

zip ../hamcrest-all-1.1.jar

最初我和Steve和Nat为JMock提出了这个问题

然而,这真的是Joe在Hamcrest的包装问题(所以我只是在那里发布;-)


JUnit包装

eclipse中的JUnit插件包含Hamcrest的一个子集.

解决方案 在eclipse项目属性中,您需要在JMock之后将JUnit库向下移动到类路径中.


Android包装

JUnit v3是android.jar的一部分,因此您无法使用JUnit 4样式的JMock测试.我们还没有注释;-)