Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java EasyMock在final方法上抛出不兼容的返回值类型_Java_Junit_Easymock - Fatal编程技术网

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方法