Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用jMock';Android单元测试的ClassImposter?_Android_Unit Testing_Tdd_Jmock - Fatal编程技术网

如何使用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限制的进一步阅读:


或者,我应该使用不同的模拟框架吗?