Могу ли я создать модульный тест для внешней службы (iPhone)? - PullRequest
2 голосов
/ 13 декабря 2011

Мое приложение регистрируется во внешней службе.Сервис звонит мне с двузначным кодом, который я должен ввести (только в первый раз), чтобы использовать сервис.После этого остальные вызовы службы будут работать нормально.

Как бы настроить юнит-тест для метода, который не завершен, пока код ответа не будет введен вне диапазона?

Есть идеи?iOS SDK 4.2

1 Ответ

0 голосов
/ 13 декабря 2011

Используйте OCMock для проверки сервиса, который позволяет использовать заглушки и возвращать ожидаемый результат.

Например:

Допустим, это ваш сервис:

@interface ServiceClass
- (NSString *) fetchData;
@end

Это была бы ваша фиктивная служба

id serviceMock = [[OCMockObject niceMockForClass:[ServiceClass class]];
[[[serviceMock stub] andreturn:@"56"] fetchData];
// we tell the mock to return the string "56" when the method fetchData is called

SomeViewController *mvc = [[SomeViewController alloc] init];
mvc.webService = serviceMock;
// Here we are injecting a mock into a view controller

Вы можете использовать некоторые методы внедрения зависимости, чтобы внедрить этот макет в свой контроллер вида

@synthesize webService = _webService;

- (IBAction)buttonClicked:(id)sender
{
   NSString *result = [self.webService fetchData];
}

- (ServiceClass *)webService
{
   if (!_webService)
   {
      _webService = [[ServiceClass alloc] init];
   }

   return _webService;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...