java.lang.IllegalStateException: 没有最后一次调用可用于静态方法的模拟
java.lang.IllegalStateException: no last call on a mock available for static method
我是 junit 模拟的新手。我试图在下面模拟。
IsomeInterface someinterface = someClass.getInstance();
其中 someClass
是 IsomeInterface
的实现。
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)
我是 junit 模拟的新手。我试图在下面模拟。
IsomeInterface someinterface = someClass.getInstance();
其中 someClass
是 IsomeInterface
的实现。
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)