【问题标题】:How do I use jMock's ClassImposteriser for Android unit testing?如何使用 jMock ClassImposterizer 进行 Android 单元测试?
【发布时间】:2011-05-24 04:54:21
【问题描述】:

在我的单元测试中,我尝试了以下方法:

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 单元测试吗?

【问题讨论】:

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

标签: android unit-testing tdd jmock


【解决方案1】:

这是我几个月前广泛研究的内容。不幸的是,dalvik VM 目前不支持模拟具体类所需的字节码操作。

因此,您将无法使用任何模拟库来模拟一个类。您必须为要在 android 测试中模拟的每个类提取一个接口,并改为模拟该接口。

一些关于 davlik 限制的进一步阅读:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-22
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 2020-09-25
    • 1970-01-01
    • 2022-11-17
    相关资源
    最近更新 更多