我正在尝试将jMock作为我项目的模拟框架。我遇到了需要模拟类和接口的情况。我使用ClassImposteriser.INSTANCE
来启动上下文的冒充者。
假设一个类Validator
和一个接口Person
来模拟。当我要模拟界面Person
时,我遇到了问题NoClassFoundDefError
。当我嘲笑班级Validator
时,没有问题。
我需要那个类和接口,但我无法解决问题。 请帮助。
代码示例:
嘲笑
private Mockery context = new JUnit4Mockery() {{ setImposteriser(ClassImposteriser.Class) }};
班级:
private Validator validator;
界面:
private Person person;
内部测试方法
validator = context.Mock(Validator.class);
---->工作
person = context.Mock(Person.class);
---->NoClassFoundDefError
答案 0 :(得分:9)
您提供的代码将无法编译(它应该是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 {
}
}