作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我的单元测试中,我尝试了以下方法:
import org.jmock.Mockery;
import org.jmock.Expectations;
import org.jmock.lib.legacy.ClassImposteriser;
public class MyActivityTest extends ActivityUnitTestCase<MyActivity> {
private Mockery context = new Mockery() {{
setImposteriser(ClassImposteriser.INSTANCE);
}};
...
}
我的预期用途是模拟我项目的应用程序子类。但是,当我运行测试时,我得到一个 java.lang.ExceptionInInitializerError。我不能使用 ClassImposteriser 扩展来运行 Android 单元测试吗?
最佳答案
这是我几个月前广泛研究的内容。不幸的是,dalvik VM 目前不支持模拟具体类所需的字节码操作。
因此您将无法使用任何模拟库来模拟类。您必须为要在 Android 测试中模拟的每个类提取一个接口(interface),然后模拟该接口(interface)。
一些关于 davlik 限制的进一步阅读:
关于android - 如何使用 jMock ClassImposterizer 进行 Android 单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6105822/
在我的单元测试中,我尝试了以下方法: import org.jmock.Mockery; import org.jmock.Expectations; import org.jmock.lib.leg
我是一名优秀的程序员,十分优秀!