이 될 경우, json을 파싱하여 기본 문자열 토큰이나 에러 메시지를 반환합니다. 나는 - 단지 내가 콜백을 수정하지 않는 한 - 그것은 아래의 두 콜백을 호출하는 것처럼 것을 발견하기 위해 실제 엔드 포인트에 이것을 유선까지이NSString 타입의 프로퍼티가 [NSNull null]
- (void)testVerifyCallbackInvokesErrorCallbackOnDelegateWhenParserReturnsError
{
SomeResult *result = [[SomeResult alloc] init];
result.error = @"fail";
[[self.delegate expect] callBackWithError:@"fail"];
[[self.delegate reject] callBackWithToken:OCMArg.any];
[[[self.parser stub] andReturn:result] parseVerifyHttpResponseAndReturnResult:nil];
[self.sut callBackWithVerifyHttpResponse:nil];
[self.delegate verify];
}
- (void)testVerifyCallbackInvokesTokenCallbackOnDelegateWhenParserReturnsToken
{
SomeResult *result = [[SomeResult alloc] init];
result.token = @"token";
[[self.delegate expect] callBackWithToken:@"token"];
[[self.delegate reject] callBackWithError:OCMArg.any];
[[[self.parser stub] andReturn:result] parseVerifyHttpResponseAndReturnResult:nil];
[self.sut callBackWithVerifyHttpResponse:nil];
[self.delegate verify];
}
모든 증명
- (void)callBackWithVerifyHttpResponse:(NSData *)response
{
SomeResult *result = [self.parser parseVerifyHttpResponseAndReturnResult:response];
if (result.token) { [self.delegate callBackWithToken:result.token]; }
if (result.error) { [self.delegate callBackWithError:result.error]; }
}
시험은 잘했다 (내가 바라던하지 무엇을)
- (void)callBackWithVerifyHttpResponse:(NSData *)response
{
SomeResult *result = [self.parser parseVerifyHttpResponseAndReturnResult:response];
if (result.token != [NSNull null]) { [self.delegate callBackWithToken:result.token]; }
if (result.error != [NSNull null]) { [self.delegate callBackWithError:result.error]; }
}
그래서이 부분 질문
왜 이것을 증명할 수있는 시험을 작성할 수 없습니까? 오류 또는 토큰을 NULL 또는 NSNull로 설정하면 언제든지 정상적으로 작동합니다.
!= [NSNull null]
을 입력하면 생산 코드가 조건을 충족하지 못하는 이유는 무엇입니까 (아직 ' t 내가 값을 NSLog 때 시뮬레이터에서 실행하는 동안<null>
을 제외한 아무것도 얻을 수가?
을 명심 토큰/오류 속성은 SomeResult 객체
@interface SomeResult : NSObject
@property (strong, nonatomic) NSString *token;
@property (strong, nonatomic) NSString *error;
@end
언제나처럼 ~! –