【发布时间】:2015-12-24 05:26:39
【问题描述】:
考虑以下示例MockUp 的类Foo,它在构造函数中拦截Bar,然后根据Bar 实现toString();
public class FooStub extends MockUp<Foo> {
private Bar bar;
@Mock
public void $init(Bar bar) {
this.bar = bar;
}
@Mock
public String toString() {
return bar.toString();
}
}
如果 Foo 恰好覆盖 toString() 一切正常。否则,您会得到一个 IllegalArgumentException :“未找到以下模拟的匹配真实方法”。我从这里了解到,JMockit 不查看基类,因此找不到要模拟的 toString() 方法。
假设我不能修改 Foo 类(实际上我可以,但只是为了论证),有没有办法模拟 toString() 只是为了这个 Foo 类?
明确地说,我想模拟这个类的所有实例,而不仅仅是一个实例(它有不需要MockUp 的简单解决方案)。
【问题讨论】:
标签: java unit-testing mocking jmockit