如何测试调用其他类的类

时间:2014-10-16 07:35:47

标签: java junit junit4

如果有类的方法:

public String createA(String message) {
    . . .

    String sec = MDI.check(message, ..., ...);
    if sec == null throw . . . 

    return something;
}

测试createA(message)和模拟,存根,...对MDI的调用的方法是什么?我的意思是,我想在测试中检查createAMDI.check(...)的通话是否会返回我想要的内容。

@Test
public void testcreateA() {

}

1 个答案:

答案 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

希望它有所帮助。