【发布时间】:2018-12-15 10:58:56
【问题描述】:
我想使用 PowerMockito 模拟一个静态方法,
public class DepedencyService {
public static int getImportantValue() {
return -4;
}
}
public class Component {
public int componentMethod() {
return DepedencyService.getImportantValue();
}
}
但它给了我一个例外。
import static org.testng.Assert.assertEquals;
import org.easymock.EasyMock;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
@PrepareForTest(DepedencyService.class)
public class ComponentTest {
@Test
public void testComponentMethod() {
Component c = new Component();
PowerMockito.mockStatic(DepedencyService.class);
EasyMock.expect(DepedencyService.getImportantValue()).andReturn(1);
assertEquals(1, c.componentMethod());
}
}
例外:-
java.lang.IllegalStateException:没有最后一次调用模拟可用 org.easymock.EasyMock.getControlForLastCall(EasyMock.java:520) 在 org.easymock.EasyMock.expect(EasyMock.java:498)
谁能帮帮我?为什么会失败?我是 PowerMockito 的新手,不知道在这里做什么!
【问题讨论】:
标签: java unit-testing junit mockito powermockito