我正在试验 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/