2015-11-13 12 views
0

Я пытаюсь высмеять статический метод в классе.Powermock java.lang.IllegalStateException: нет последнего вызова на макет

PowerMock.mockStatic(WebUtils.class); 
EasyMock.expect(WebUtils.getRequest(EasyMock.anyObject(Object.class))).andReturn(httpServletRequest).anyTimes(); 
PowerMock.replayAll(); 

getRequest является не последним статическим методом. На второй строке JUnit подбрасывается ниже ошибки.

java.lang.IllegalStateException: no last call on a mock available 
    at org.easymock.EasyMock.getControlForLastCall(EasyMock.java:520) 
    at org.easymock.EasyMock.expect(EasyMock.java:498) 
    at -- 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:68) 
    at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:310) 

Powermock версия: 1.6.2 & Запуск тестового класса с PowerMockRunner.h

+1

У вас есть аннотация @PrepareForTest? – Rufi

+0

Да. Я проводил там не тот класс. После предоставления WebUtils.class в @PrepareForTest он работает. Благодаря! –

+0

Хорошо, что он работает сейчас. Таким образом, я добавил ответ на ваш вопрос. – Rufi

ответ

1

Проверьте, если установлен правильно @PrepareForTest аннотацию.