Java EasyMock在final方法上抛出不兼容的返回值类型
基本上,我正在尝试设置最终方法的结果。方法很简单,如下所示:Java EasyMock在final方法上抛出不兼容的返回值类型,java,junit,easymock,Java,Junit,Easymock,基本上,我正在尝试设置最终方法的结果。方法很简单,如下所示: @NotNull public final Server getServer() { return this.server; } EasyMock.expect(object.getServer()).andReturn(server); 我这样嘲笑它: @NotNull public final Server getServer() { return this.server; } EasyMock.expect
@NotNull
public final Server getServer() {
return this.server;
}
EasyMock.expect(object.getServer()).andReturn(server);
我这样嘲笑它:
@NotNull
public final Server getServer() {
return this.server;
}
EasyMock.expect(object.getServer()).andReturn(server);
其中服务器是POJO。这就抛出了这样一个问题:
java.lang.IllegalStateException: incompatible return value type
at org.easymock.internal.MocksControl.andReturn(MocksControl.java:281)
为了那条线。
我试着不在服务器上使用POJO,而是模仿它
@Mock
private Server server = mock(Server.class);
但仍然是同样的错误。我绝对肯定他们是完全一样的类型。为什么会这样
现在,由于某种原因,我得到了一个不同的错误:
java.lang.IllegalStateException: no last call on a mock available
相同的代码,我只有以下代码:
@Test
public void test() {
EasyMock.expect(object.getServer()).andReturn(server);
replayAll();
TestedObject.useObject(object);
}
模拟最终方法时出现错误的原因是EasyMock不支持该方法 最终的方法不能被模仿。如果调用,将执行它们的正常代码 您可以使用PowerMock来模拟final和static方法