我有一个abstract类,我想模拟出来以进行测试:
public abstract class Foo {
public abstract void bar();
public void baz() {
System.out.print("Hi from baz!");
}
}
如果我使用 easyMockFoo mock = createNiceMock(Foo.class)然后调用mock.baz()我会得到一个java.lang.NullPointerException. 如果我更改baz()为final,事情会顺利进行(我认为这与 EasyMock 无法模拟final方法的事实有关)但我希望能够在baz()不这样做的情况下调用。
有没有办法使用 EasyMock 创建一个模拟对象,允许我调用我的非abstract方法?
我目前使用的一种解决方法是:
Foo mock = new Foo() {
@Override
public void bar() {
return;
}
}
但这太丑了。