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

java.lang.IllegalStateException: no last call on a mock available for static method

我是 junit 模拟的新手。我试图在下面模拟。

IsomeInterface someinterface = someClass.getInstance();

其中 someClassIsomeInterface 的实现。 getInstance 是 returns 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)

尝试

 PowerMock.mockStatic(ClassThatContainsStaticMethod.class)

模拟这个class的所有方法。

通过powermock构建mock并通过easymock验证它们也可能存在问题所以尝试:

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