Учитывая это простой классМожно ли проверить поведение внутри класса с OCMock
@implementation ExampleClass
- (void)doStuff
{
[self doOtherStuff];
}
- (void)doOtherStuff
{
// something happens here
}
@end
это можно проверить поведение этого класса, что один из его собственных методов вызывает другую? например, в приведенном выше примере я могу использовать OCMock для проверки doOtherStuff? Я попытался следующие:
id mock = OCMClassMock([ExampleClass class]);
[mock doStuff];
OCMVerify([mock doOtherStuff]);
, но это не на самом деле вызвать вызов DoStuff на все из-за того, что это класс насмехаться. Возможно ли это только с частичным макетом - и если да, то каким альтернативным дизайном ExampleClass не нужен частичный макет? Медведь со мной - новичок в модульном тестировании и насмешливый здесь :)
Спасибо, имеет смысл. Вопрос, хотя - как это согласуется с представлением о том, что частичные издевательства являются «дьяволом»? Выполняет ли это внутриклассное тестирование плохую практику в мире тестирования модулей? Также любите свою библиотеку OCMock! – stonedauwg
Ну, описанная выше методика представляет собой, в основном, вариацию [тестового шаблона подкласса] (http://xunitpatterns.com/Test-Specific%20Subclass.html). Он имеет свои применения, но многие люди считают дизайн, в котором эти два метода оказываются в разных классах выше. В этом случае вы можете заменить другой класс обычным макетом, обычно с инъекцией зависимости. –