用mockito和powermocks注入嘲笑

时间:2013-07-30 20:34:33

标签: java mockito powermock

我想知道如何注入模拟 - 我们有很多类来执行服务器调用,但是我们的CI系统无法访问外部资源,因此不会调用服务器。因此,必须模拟调用,并且需要返回硬编码值(例如响应代码)。

所以,这是一段代码:

  HttpPost httpRequest = new HttPost(uri);
  //some code here
   try{ 
      httpRequest.setEntity(entity);
      HttpResponse response = httpClient.execute(httpRequest);
      ...
  //other, irrelevant, code is here

那么,是否可以将模拟注入httpClient.execute(httpRequest)并从测试单元返回硬编码响应实体?

谢谢

1 个答案:

答案 0 :(得分:2)

通常嘲笑某个对象看起来像这样:

public class TestClass {

    private HttpServer server;

    public HttpServer getServer() {
        return server;
    }

    public void setServer(HttpServer server) {
        this.server = server;
    }

    public void method(){
        //some action with server
    }
}

测试班:

public class TestClassTest {
    //class under test
    TestClass test = new TestClass();

    @org.junit.Test
    public void testMethod() throws Exception {
        HttpServer mockServer = Mockito.mock(HttpServer.class);
        test.setServer(mockServer);
        //set up mock, test and verify
    }
}

这里有一些有用的链接: