0

나는 모든 HTTP 요청을 가로 챌 수있는 테스트 시스템을 만들 필요가 있지만 몇 가지 연구 후 HttpUrlConnection을 조롱하는 방법을 보여주는 this 문서를 찾았지만 적응해야한다. 내 테스트의 일부인 요청에 대해서는 다른 사람들이 인터넷을 통해 정상적으로 진행해야합니다. 내 시도는 URL에 종속 된 다른 HttpUrlConnection 객체를 반환하고 분명히 작동하지 않았습니다.Android 테스팅 HttpUrlConnection (부분적으로)을 조롱

public class MockURLStreamHandler extends URLStreamHandler implements URLStreamHandlerFactory 
{ 
    .............................. 
    // *** URLStreamHandler 

    @Override 
    protected URLConnection openConnection(URL u) throws IOException { 

     mConnection = new MockHttpURLConnection(u); 
     if(u.toString().equals(myTestUrl)) 
     { 
      return mConnection; 
     } 
     else 
     { 
      //this doesn't work 
      return new HttpUrlConnection(u){..} 
     } 
    } 
    ............................... 
} 

아이디어가 있으십니까? 내가 뭘 찾아야하니?

미리 감사드립니다.

+0

모키토 사용을 고려 했습니까? –

답변

0

는 HTTP 및 HTTPS 호출을 할 때 앱이 똑바로 살아라 않음을 테스트하기 위해이 라이브러리는 쉽게 MockWebServer

를 살펴 보자. 이를 통해 응답 할 응답을 으로 지정한 다음 요청이 으로 예상되는지 확인할 수 있습니다.

전체 HTTP 스택을 실행하기 때문에 모든 것을 테스트하고 있다고 확신 할 수 있습니다. 실제 웹 서버에서붙여 넣기 HTTP 응답 을 복사하여 대표적인 테스트 케이스를 만들 수도 있습니다. 또는 을 테스트하여 500 오류 또는 느린 로딩 응답과 같이 어색하게 재생되는 상황에서 코드가 살아남을 수 있습니다.