2015-10-22 7 views
0

im new для junit mocking. и я пытаюсь высмеять ниже строки.java.lang.IllegalStateException: нет последнего вызова на макет, доступный для статического метода

IsomeInterface someinterface = someClass.getInstance(); 

где someClass является реализация IsomeInterface. и 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) 

ответ

0

Попробуйте

PowerMock.mockStatic(ClassThatContainsStaticMethod.class) 

издеваться все методы этого класса.

Также может быть проблемой при построении издеваться через powermock и проверить их EasyMock так попробовать:

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

благодаря этим работали! – Manjunath

+0

Итак, пожалуйста, отметьте мой ответ как правильно :) – kkhipis