java.lang.IllegalStateException:没有最后一次调用可用于静态方法的模拟

时间:2015-10-22 09:35:56

标签: java junit powermock easymock

我对junit嘲笑很新。而我试图在线下嘲笑。

IsomeInterface someinterface = someClass.getInstance();

其中someClassIsomeInterface的实施。 getInstance是一个返回someClass对象的静态方法。 下面是我试过的嘲笑。

someClass someClassMock= PowerMock.createMock(someClass.class);
EasyMock.expect(someClass.getInstance()).andReturn(someClassMock);

异常:

java.lang.IllegalStateException: no last call on a mock available
    at org.easymock.EasyMock.getControlForLastCall(EasyMock.java:560)
    at org.easymock.EasyMock.expect(EasyMock.java:538)

1 个答案:

答案 0 :(得分:0)

尝试

 PowerMock.mockStatic(ClassThatContainsStaticMethod.class)

模拟此类的所有方法。

也可能存在使用powermock构建模拟并通过easymock验证它们的问题所以尝试:

   PowerMock.expectNew(NewInstanceClass.class).andReturn(mockObject)