Можно ли проверить поведение внутри класса с помощью 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 не требует частичной имитации? Терпите меня - новичок в юнит-тестировании и издевательствах здесь:)
1 ответ
Это то, что частичные насмешки для. Создать экземпляр ExampleClass
, а затем создайте частичный макет для этого экземпляра. Используя этот частичный макет, вы теперь можете проверить и / или заглушить методы в этом экземпляре, например, убедиться, что doOtherStuff
называется.