웹 서버에서 데이터를 가져와야하는 iPhone 응용 프로그램을 작성하고 있습니다. 나는 잘 작동하는 HTTP 요청을 수행하기 위해 NSURLConnection
을 사용하고 있지만 응답에 HTTP 오류 코드 (예 : 404 또는 500)가있는 경우 내 코드를 테스트하는 데 문제가 있습니다.HTTP 응답 오류 상태를 사용하여 NSURLConnection을 테스트합니다.
단위 테스트에는 GTM을, 조롱에는 OCMock을 사용하고 있습니다. 서버가 오류를 반환 할 때
연결이 대리자에 connection:didFailWithError:
를 호출하지 않습니다, 대신, connection:didReceiveResponse:
connection:didReceiveData:
및 connectionDidFinishLoading:
를 호출합니다. 현재 connection:didReceiveResponse:
응답의 상태 코드를 확인하고 이 호출되지 않도록 상태 코드가 오류처럼 보이는 경우 연결시 cancel
을 호출하면 성공적인 응답이보고됩니다.
static stubbed를 제공하는 것은 간단하지만 mock 연결 메소드 중 하나가 호출 될 때 동작이 변경되도록하고 싶습니다. 특히 테스트에서 코드가 cancel
이라는 모의 연결에서 호출 된 것을 테스트에서 알려 주면 테스트에서 connection:didReceiveData:
및 connectionDidFinishLoading:
을 대리인에 대한 호출을 중지 할 수 있습니다.
모의 객체에서 cancel
이 호출되었는지 확인할 수있는 방법이 있습니까? NSURLConnection
을 사용하는 코드를 테스트하는 더 좋은 방법이 있습니까? HTTP 오류 상태를 처리하는 더 좋은 방법이 있습니까?
NSURLConnection에 대한 호출을 단위 테스트하는 방법에 대한 샘플 코드를 보여 주시겠습니까? –