如何使用jMock';Android单元测试的ClassImposter?
在我的单元测试中,我尝试了以下方法:如何使用jMock';Android单元测试的ClassImposter?,android,unit-testing,tdd,jmock,Android,Unit Testing,Tdd,Jmock,在我的单元测试中,我尝试了以下方法: 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() {{
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);
}};
...
}
import org.jmock.mockry;
导入org.jmock.expections;
导入org.jmock.lib.legacy.ClassImposter;
公共类MyActivityTest扩展ActivityUnitTestCase{
私有mockry context=newmockry(){{
setImposteriser(ClassImposteriser.INSTANCE);
}};
...
}
我的预期用途是模拟项目的应用程序子类。但是,当我运行测试时,会得到一个java.lang.ExceptionInInitializeError。我可以不使用ClassImposter扩展来运行Android单元测试吗 这是我几个月前广泛研究的问题。不幸的是,dalvik VM目前不支持模拟具体类所需的字节码操作 因此,您将无法使用任何模拟库来模拟类。您必须为要在android测试中模拟的每个类提取一个接口,然后模拟该接口 关于davlik限制的进一步阅读: