你好,
我正在使用OCMock
编写单元测试,我无法理解为什么以下测试失败。
我试图从名为MyOtherViewController
的类中测试此方法:
// private method of firstViewController
- (void)goToInitialViewController
{
// type of secondViewController is SecondViewController
[secondViewController showInitialViewController];
}
这是我写的测试:
- (void)testShowInitialVCCalledWhenGoToInitialVCCalled
{
id secondVCMock = OCMClassMock([SecondViewController class]);
FirstViewController *firstVC = [FirstViewController new];
[firstVC goToInitialViewController];
OCMVerify([secondVCMock showInitialViewController]);
}
我也尝试使用OCMPartialMock([SecondViewController new])
,但测试仍然失败。
我错过了关于模拟的东西。
任何帮助将不胜感激!感谢
答案 0 :(得分:1)
secondViewController
是一个实际的SecondViewController。对于测试,您需要注入替代品。有几种不同的方式,但最清洁的是:
有关详情,请参阅How to Use Dependency Injection to Make Your Code Testable