Я пытаюсь настроить TDD моего проекта, поэтому у меня есть следующий модульный тест:
- (void)testOnDoesUsernameExistsShouldReturnFalseWhenInvalidJSONResponseFromService {
id mock = [OCMockObject partialMockForObject:(NSObject *) (id <ServiceHelperProtocol>) self.serviceHelper];
[[[mock stub] andReturn:@"invalid-json-response"] get:[OCMArg any]];
assertThat([self.signUpService doesUsernameExist:@"testusername"], true);
}
Этот тест выполняется по этому методу:
- (BOOL)doesUsernameExist:(NSString *)userName {
NSString *url = [[NSString alloc] initWithFormat:@"%@/%@/api/signup.username_exists/?username=%@", kAPPLICATION_HOST, kAPPLICATION_NAME, userName];
NSString *responseString = [self.serviceHelper get:url];
if (responseString != nil && ![responseString isEqualToString:@""]) {
@try {
NSDictionary *dictionary = [responseString JSONValue]; // auto-released
NSString *usernameExists = [dictionary objectForKey:@"username_exists"];
return usernameExists != nil && ![usernameExists isEqualToString:@"null"];
}
@catch (NSException *e) {
NSLog(@"Unable to parse JSON: %@", e.description);
}
}
[responseString release];
[url release];
return false;
}
Когда яЗапустив этот тест, я получаю следующее предупреждение в строке 94 (строка assertThat):
passing argument 2 of 'HC_assertThatWithLocation' makes pointer from integer without a cast
Когда я подставляю макрос, я получаю следующую строку кода:
HC_assertThatWithLocation(self, [self.signUpService doesUsernameExist:@"testusername"], HC_is(0), "_file_name_", 0);
Для некоторыхпричина, по которой мой тест не пройден, но я не могу понять, что не так.Тестовый пример неправильный, реализованный метод неправильный или он как-то связан с платформой OCMock в сочетании с сопоставителями OCHamcrest?
Я использую Xcode 4.2 с OCMock 1.66 и OCHamcrest 1.7.
Есть мысли?