【发布时间】:2013-04-04 03:59:21
【问题描述】:
我有一个 abstract 类,我想模拟出来用于测试目的:
public abstract class Foo {
public abstract void bar();
public void baz() {
System.out.print("Hi from baz!");
}
}
如果我使用easyMock Foo 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;
}
}
但这太丑了。
【问题讨论】: