2017-10-13 4 views
0

내 단위 테스트는 http 상호 작용을하는 구성 요소를 호출합니다. 테스트를 실행하기 전에 http 서버를 설정하고 테스트 후에 어설 션을 만들어 예상되는 상호 작용이 발생했는지 확인하려고합니다.자바 유닛 테스트에서 http 서버를 설정하고 이에 대한 어서션을 만드는 빠른 방법은 무엇입니까?

조롱은 테스트의 일부로 네트워크 상호 작용을하고 싶다는 등 몇 가지 이유로 너무 낮습니다.

답변

0

이 같은 Gradle을 통해 포함 할 수 Simple Framework를 사용 :

public class HttpMockingTest { 

    class TestContainer implements Container { 

     int n = 0; 

     @Override 
     public void handle(Request req, Response resp) { 

      // count 
      n += 1; 

      // close the response 
      try { 
       resp.getOutputStream().close(); 
      } catch (IOException e) { 
       throw new RuntimeException(e); 
      } 
     } 
    } 

    @Test 
    public void test0() throws IOException { 

     // this sets up the server 
     TestContainer testContainer = new TestContainer(); 
     Server server = new ContainerServer(testContainer); 
     SocketConnection socketConnection = new SocketConnection(server); 
     InetSocketAddress inetSocketAddress = new InetSocketAddress("localhost", 9999); 
     socketConnection.connect(inetSocketAddress); 

     // this invokes the server 
     int n = 2; 
     for (int i = 0; i < n; i++) { 
      try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) { 
       CloseableHttpResponse httpResponse = httpClient.execute(new HttpGet("http://localhost:9999/foo")); 
      } 
     } 

     // make assertions 
     assertEquals(n, testContainer.n); 
    } 
} 
:

testCompile 'org.simpleframework:simple:5.+'

당신은이 같은 테스트 케이스를 작성할 수