我正在尝试在Android上构建一个单元测试,它使用来自mockito.org的mockito-all-1.8.5.jar文件。我使用项目>将jar文件添加到我的项目中属性>项目构建路径>添加外部jar。这对我来说非常适合非Android的java项目。
但是,当我运行单元测试时,我得到以下类未找到异常:
java.lang.ClassNotFoundException:org.mockito.runners.VerboseMockitoJUnitRunner
以上是以下信息:
无法加载课程。确保它在你的apk中。班级名称:'org.mockito.runners.VerboseMockitoJUnitRunner'。消息:org.mockito.runners.VerboseMockitoJUnitRunner
我检查了罐子,班级就在那里。
我也尝试根据此链接添加:
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 :(得分:0)
如果您在Dalvik JVM内执行,您将无法使用Mockito。
如果您在桌面JVM上运行单元测试(例如,使用Robolectric之类的测试框架)那么您就可以开始了。我目前在我的Android项目上将两者结合起来,效果很好。