2011-03-30 28 views
4

我试图在Android上构建一个使用mockito.org上的mockito-all-1.8.5.jar文件的单元测试。我使用项目>属性>项目构建路径>添加外部jar将jar文件添加到我的项目中。这对我一直在非Android的Java项目上工作。Android Junit测试-Mockito类未发现异常

然而,当我运行单元测试,我得到没有发现下面的类例外:

抛出java.lang.ClassNotFoundException:org.mockito.runners.VerboseMockitoJUnitRunner

它上面以下信息:

无法加载类。确保它在您的apk中。类名称:'org.mockito.runners.VerboseMockitoJUnitRunner'。消息:org.mockito.runners.VerboseMockitoJUnitRunner

我检查了jar,并且类在那里。

我也尝试添加按照此链接:

How to use and package a JAR file with my Android app?

但是,仍然没有运气。我怎样才能找到这个类?

编辑:我在想任何库Mockitto都依赖于它的问题 - 它们可能与Dalvik jvm不兼容。看到此信息:

http://daverog.wordpress.com/2009/12/14/why-android-isnt-ready-for-tdd-and-how-i-tried-anyway/

1)导入模拟框架(例如的Mockito)到项目作为附加的依赖性。 任何包含未编译为Dalvik字节码(最多)的类文件的导入jar文件都不起作用。尝试编译源代码以及项目将不起作用,因为大多数库都会广泛使用与Dalvik不兼容的Java语言部分:它使用基于Apache Harmony Java实现的子集构建的自己的库。

+0

你确定你的项目中有jUnit吗?考虑到它不能加载类'VerboseMockito' **'JUnit' **'Runner',可能是因为这个原因。 – Spoike 2011-05-14 19:54:43

+0

如果仍有问题,请直接询问mockito开发者或提交[错误报告](http://code.google.com/p/mockito/issues/list)。 – Spoike 2011-05-14 19:57:07

回答

0

如果你正在执行Dalvik JVM,你将无法使用Mockito。

但是,如果您正在桌面JVM上运行单元测试(例如使用像Robolectric这样的测试框架),那么您就很好。我现在正在将我的Android项目与两者结合起来,效果很好。

+1

更新:Mockito可以使用现在一天。 – DustinB 2015-01-20 23:39:59