我有一个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;
}
}
但这太丑了。