Тестовый пример iOS Kiwi с ошибкой, переданной по ссылке

Скажем у нас есть:

 - (NSString *)someMethod:(NSString *)input
 {
      NSError *error = nil;
      NSString *result = [otherObject processInput:input error:&error];

      if (error == nil) {
           return result;
      }
      else {
           return nil;
      }
 }

Как я могу протестировать его с помощью Kiwi, чтобы проверить, как еще он себя ведет?

Конечно, я мог бы поставить что-то противное, как input но я не хочу использовать этот подход. Это юнит-тест для someMethod: метод, не для processInput:error: метод и otherObject это KWMock, Я пытался использовать KWCaptureSpy класс или stub: withArguments: но я либо использовал их неправильно, либо они не являются решением проблемы.

С уважением

1 ответ

Решение

В Какао вы должны проверить, если метод возвращает nilне проверять error против nil: http://rentzsch.tumblr.com/post/260201639/nserror-is-hard.

Так что, возможно, переписать someMethod проверить значение, возвращаемое otherObject заглушка, а не error указатель. Это будет проще проверить (вам нужно только позвонить stub:andReturn: метод из KWMockВозвращаясь либо nil или ненулевое значение), и вы будете следовать соглашениям Cococa.

Другие вопросы по тегам