如果有类的方法:
public String createA(String message) {
. . .
String sec = MDI.check(message, ..., ...);
if sec == null throw . . .
return something;
}
测试createA(message)
和模拟,存根,...对MDI
的调用的方法是什么?我的意思是,我想在测试中检查createA
到MDI.check(...)
的通话是否会返回我想要的内容。
@Test
public void testcreateA() {
}
答案 0 :(得分:0)
在您的情况下,您可以使用PowerMock框架来模拟静态调用MDI.check(message, ..., ...)
,然后测试您的方法。
测试类将是这样的:
@RunWith(PowerMockRunner.class)
@PrepareForTest(MDI.class)
public class FooTest {
@Test
public void testCreateA() throws Exception {
PowerMockito.mockStatic(MDI.class);
PowerMockito.when(MDI.check(anyString(), anyString(), anyString())).thenReturn("Expected Answer");
// test createA method
}
}
请注意,您需要使用PowerMockRunner运行测试。 PowerMock documentation中有很多示例和一些有关它的stackoverflow问题(example)
希望它有所帮助。