2012-03-21 4 views
2

iOS 앱에 대한 서버 응답 조롱 (JSON)에 대한 모범 사례는 무엇입니까?iOS 용 스텁 서버 만들기 (NSUrlConnection 조롱)

하나의 개발자 (나 아님)가 백엔드를 만들고 있으며 "의사 모집 서버"를 만들고 의사 데이터를 사용하여 사용자 테스트를 시작할 수 있고 단위 테스트도 할 수 있습니다.

nsurlconnection을 가로채는 프레임 워크가 있습니까? 실제로 서버에 손을 뻗고 싶지 않으면 json 응답을 삽입 할 수 있습니까? 현재 모든 내 서버 요청 방법과 그 종류의 추한 내부의 플래그를 전환 중입니다.

답변

2

서버 통신의 경우 나는 NSURLConnection을 내 '서비스 요청'클래스로 추상화합니다. 이것은 내 코드를 서버 특정 로직 및 오류 처리와 분리하지만, 응답 데이터를 조롱하면 이 극도로이라는 것을 알 수 있기 때문에 좋습니다. 구성을 통해 모의 데이터를 사용하도록 설정하거나 @wkhatch 멘션으로 조건부로 컴파일하도록 설정할 수 있습니다.

+0

모든 서버 로직을 다른 모든 것에서 추상화하는 자체 서버 요청 클래스가 있습니다. 이 클래스 내에서 유효한 데이터를 반환하는 것은 매우 쉽습니다. 그러나 그것은 내 문제가되지 않습니다. 정말 원하는 것은 내 사용자 정의 JSON 처리를 테스트하는 것입니다. serverrequest abstraction을 사용하더라도 코드가 라이브인지 (nsurl 사용) 또는 테스트 (사용자 정의 반환 된 데이터 사용)인지 확인하기 때문에 코드 자체가 항상 엉망이됩니다. – Msencenb

+0

Ok ... 이전 댓글을 nvm 충분히 신중하게 읽지 않았다. 나는 결국 nsurlconnection을 추상화하는 것을 끝내었고, 그것은 내가 가짜 nsurlresponse와 nsdata (json)을 만들도록 허락한다. 그런 다음 나에게 주어진 블록으로 다시 전달한다. – Msencenb

0

프로토콜을 정의하고 종속 클래스가 프로토콜을 유형으로 사용하도록 한 다음이를 구현하는 몇 가지 다른 클래스를 만들 수 있습니다. 하나는 테스트 용으로, 다른 하나는 테스트 용으로 사용할 수 있습니다. 그런 다음 종속 컨트롤러 내에서 또는 전환해야하는 모든 곳에서 대상 또는 구성 사전 proc을 사용하여 어느 것이 사용되는지 전환하십시오. 당신이 원하는 것을 할 수있는 유일한 방법은 아니다 확실히

id<ProtocolName> myServerURLConnectionThing; 

이 있지만, 기본적으로, 모든 인터페이스를 추상화에 내려 올 것입니다 :이 방법으로 프로토콜을 사용하는 경우처럼 정의 할 당신은 한 가지 방법이나 다른 방법이 필요합니다. HTH

2

확인 Nocillap, 아이폰 OS/OSX 개발을위한 멋진 조롱 라이브러리 중 하나 : 요즘 거대한 AFNetworking

stubRequest(@"POST", @"https://api.example.com/dogs.json"). 
andReturn(201). 
withHeaders(@{@"Content-Type": @"application/json"}); 

작품.

관련 문제