我是 OCMock 的新手,我正在尝试测试是否调用了一个方法,但我希望该方法是一个存根,因为它包含其他我不想在当前测试中测试的加载方法。
- (void)setUp
{
self.rootViewController = [[RootViewController alloc] init];
}
- (void)tearDown
{
self.rootViewController = nil;
}
- (void)test_ViewDidLoad_DidCallLoadChildViewControllers
{
id mockRootViewController = [OCMockObject partialMockForObject:self.rootViewController];
[(RootViewController*)[mockRootViewController stub] loadChildViewControllers];
[(RootViewController*)[mockRootViewController stub] updateMainNavigation];
[[mockRootViewController expect] loadChildViewControllers];
// Force the view to load
self.rootViewController.view;
[mockRootViewController verify];
}
这是被调用的方法:
- (void)viewDidLoad
{
[super viewDidLoad];
[self loadChildViewControllers];
[self updateMainNavigation];
}
由于某种原因,测试失败了,就好像它从未被调用过(但我可以通过它并验证它是否被调用,以及它是一个存根。
这是错误:
OCPartialMockObject[RootViewController]: expected method was not invoked: loadChildViewControllers
我错过了什么?