私は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
私は何が欠けていますか?