【发布时间】:2016-05-13 07:33:38
【问题描述】:
我想验证 public static void 方法已被调用。
@RunWith(PowerMockRunner.class)
@PrepareForTest({ConsoleLog.class})
public class AdContentDataUnitTest {
@Before
public void setUp() throws Exception {
PowerMockito.mockStatic(ConsoleLog.class);
}
@Test
public void adContentData_sendTrackingEvent_noUrl() throws Exception {
mAdContentData = spy(mAdContentData);
// PowerMockito.doNothing().when(ConsoleLog.class);
verifyStatic();
mAdContentData.sendTrackingEvent("event1");
//verifyStatic();
}
}
sendTrackingEvent 将被调用,ConsoleLog.v(String, String) 将被调用。我在调试中可以看到调用了静态方法,但是出现以下日志并且测试失败:
Wanted but not invoked com.example.logger.ConsoleLog.v(
"AdContentData",
"sendTrackingEvent: event event1 does not exist."
);
我尝试在相同的日志之后添加verifyStatic,如果我删除第一个验证,则不会检查任何内容。如果我模拟整个 ConsoleLog 类,则会出现错误Unfinished stubbing detected here: [...] PowerMockitoCore.doAnswer。
有人知道如何正确操作吗?
【问题讨论】:
标签: java junit mockito powermockito