java - jMock 模拟类和接口(interface)

标签 java mocking jmock

我正在试验 jMock 作为我项目的模拟框架。我遇到了需要同时模拟类和接口(interface)的情况。我使用 ClassImposteriser.INSTANCE 来启动上下文的冒名顶替者。

假设要模拟一个类 Validator 和一个接口(interface) Person。当我要模拟接口(interface) Person 时,我遇到了一个问题 NoClassFoundDefError。当我模拟 Validator 类时,没有问题。

我需要那个类和接口(interface),但我无法解决问题。 请帮忙。

代码示例:

mock

private Mockery context = new JUnit4Mockery() {{ setImposteriser(ClassImposteriser.Class) }};

类:

private Validator validator;

接口(interface):

private Person person;

内部测试方法

validator = context.Mock(Validator.class); ----> Working

person = context.Mock(Person.class); ----> NoClassFoundDefError

最佳答案

您提供的代码不会编译(它应该是 ClassImposteriser.INSTANCE)。下面的示例代码似乎工作正常。或许您可以提供更多详细信息?

public class Example {
    private Mockery context = new JUnit4Mockery() {
    {
        setImposteriser(ClassImposteriser.INSTANCE);
    }
    };

    @Test
    public void testStuff() {
    Validator validator = context.mock(Validator.class);
    Person person = context.mock(Person.class);

    // do some stuff...
    }

    public static interface Person {
    }

    public static class Validator {
    }
}

关于java - jMock 模拟类和接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/968171/

相关文章:

java - 使用 Jmockit 模拟公共(public)方法

java - JMock 匹配器与 setAttribute(String, Object)

java - Apache tomcat : Permanent redirect not working

python - 如何模拟 numpy.fromfile?

java - 如何使用循环填充 FXCollections.observableArrayList? [javafx]

python - 在修补导入的模块时模拟返回 ImportError

php - yii phpunit getMockBuilder 不使用 --filter

java - 使用 Hibernate 进行测试 : Object dependence chain on persistence

java - 通用 java 删除如何影响 newInstance() 的使用?

java - PlayFramework 返回内容类型为 application/json 的 BadRequest