Мне интересно, как это проверить. У меня есть метод, который принимает параметр и на основе некоторых свойств этого параметра создает другой объект и работает на нем. Код выглядит примерно так:Как я могу тестировать объект внутри метода в Objective-C?
- (void) navigate:(NavContext *)context {
Destination * dest = [[Destination alloc] initWithContext:context];
if (context.isValid) {
[dest doSomething];
} else {
// something else
}
[dest release];
}
Что я хочу, чтобы проверить, что если context.isValid верно, что йоЗотеЬЫпд вызывается Dest, но я не знаю, как проверить, что (или, если это даже возможно) с использованием OCMock или любых других традиционных методов тестирования, поскольку этот объект полностью создается в рамках метода. Я иду об этом неправильно?
Это, кажется, самый простой ответ, но кажется немного беспорядочным, чтобы объект назначения жил в нескольких областях, когда это действительно не нужно в другом месте, просто для поддержки простого тестирования. Я думаю, что компромиссы должны быть сделаны где-то :) – Kevlar
Да; если вы хотите, чтобы иметь возможность заменить отдельный объект Destination, тогда вам нужно каким-то образом передать его. Это самый чистый способ, который я знаю об этом. –