Создание неинтерфейсных методов для тестирования в Objective-C - PullRequest
1 голос
/ 11 июля 2010

В настоящее время я пишу класс Objective-C, который имеет относительно сложный метод в своем интерфейсе. Для целей вопроса я буду использовать следующую декларацию ...

@interface Processor : NSObject {

}

- (NSObject*)doSomeComplicatedProcessing:(NSObject*)param;

@end

Так что doSomeComplicatedProcessing - мой сложный метод. В моей реализации doSomeComplicatedProcessing я вызываю ряд других методов, которые объявлены и реализованы в Processor.m (т.е. они не являются частью интерфейса). Методы не являются частью интерфейса, поскольку они используются исключительно в реализации doSomeComplicatedProcessing и не будут использоваться для клиентов Processor.

Мне интересно, как лучше всего тестировать эти методы? Очевидно, что я могу протестировать doSomeComplicatedProcessing в целом, но что если я захочу протестировать неинтерфейсные методы?

В настоящее время я вызываю эти методы и игнорирую компилятор, предупреждающий меня о том, что Processor «может не реализовывать метод someMethodName», но он оставляет меня немного грязным. Есть ли лучший способ для Objective-C решить эту проблему?

1 Ответ

3 голосов
/ 11 июля 2010

Вы можете извлечь объявления в отдельном заголовке, скажем, Processor+Private.h, который использует только Processor.m и тестовый код.Хотя мне интересно, можете ли вы хранить инварианты для этих закрытых методов при вызове их отдельно от внешней стороны.

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