2013-05-29 6 views
1

현재 구현하고있는 AFHTTPClient 하위 클래스와 함께 API으로 연결을 처리하는 관리자 클래스가 있습니다. 네트워크 연결을 보장 할 수없는 곳에서 응용 프로그램이 사용될 것이므로 네트워크 도달 범위의 변화를 처리하는 코드 주위에 단위 테스트를 작성하고 싶습니다.afhttpclient 단위 네트워크 도달 범위의 변경 사항 테스트

setReachabilityStatusChangeBlock을 구현했으며 올바른 방식으로 호출되고 올바르게 작동하는지 확인하고자합니다.

단위 테스트에서 네트워크 도달 가능성의 변화를 시뮬레이션하는 데 익숙한 사람이 있습니까? 저는 현재 단위 테스트를 위해 키위를 사용하고 webservice에서 반환 된 데이터를 시뮬레이트하기 위해 OHHTTPStubs을 사용하고 있습니다.

이러한 상황을 테스트하는 일반적인 방법은 무엇입니까?

답변

0

사과 단위 테스트 프레임 워크로이 작업을하고 있습니다. 나는 도달 가능성을 사용하지 않는 테스트를 위해 별도의 클래스를 사용했지만 네트워크의 위 또는 아래 알림을 시뮬레이트하기 위해 테스트 하니스가 보내는 메시지가 될 수 있습니다. 이를 지원하기 위해 기본 코드를 재구성해야 할 수도 있습니다.

EDIT : 이제 Reachability를 처리하는 클래스가있는 경우 - 외부 에이전트가 특수 클래스에 "가장하는"것을 허용하는 동일한 이름, 동일한 메소드/속성 및 일부 새로운 메소드의 새 클래스를 생성합니다. "뭔가 바뀌었다. 따라서 실제 도달 가능성 이벤트 대신에 해당 클래스에 -(void) fakeNetworkStatus:(BOOL)nowUp이라는 호출이 있습니다. 그래서 테스트 하니스의 코드는 이제 Reachability 클래스와 상호 작용하고 있습니다 (물론 유닛 테스트에는 포함되지 않습니다).

EDIT2 : 이에 대한 의견이 더 많습니다. 구현 파일은 중복 될 수 있지만 Xcode는 실제로 여러 인터페이스 파일을 지원하지 않습니다. 내가 최근에 한 일은 새로운 구성 인 ReleaseForUnitTest를 만들어서 "UNIT TESTING"을 정의한 것입니다. 이제 단위 테스트 용 코드 또는 메소드 프로토 타입 블록을 제공 할 수있었습니다. 이것을 사용하여 두 개의 구현 파일과 하나의 인터페이스 파일을 가질 수 있습니다.

+0

귀하의 앱에서 이것을 테스트하고 있다는 소식을 듣고 싶습니다. 테스트를 수행하기 위해 별도의 클래스를 사용하는 방법을 보여주는 코드를 제공 할 수 있습니까? –