我正在尝试基于情节提要测试应用程序。该场景是一个导航控制器,里面有一个视图控制器。测试是执行 segue 将视图控制器设置为目标控制器(push segue)。我正在使用 OCMockito,这是我的测试:
MyViewController *mockSut = mock([MyViewController class]);
UINavigationController *nav = mock([UINavigationController class]);
[given(mockSut.navigationController) willReturn:nav];
[mockSut performSegueWithIdentifier:@"mySegue" sender:nil];
MKTArgumentCaptor *segueArgument = [[MKTArgumentCaptor alloc] init];
MKTArgumentCaptor *senderArgument = [[MKTArgumentCaptor alloc] init];
[verify(mockSut) prepareForSegue:[segueArgument capture] sender:[senderArgument capture]];
assertThat([[[segueArgument value] destinationViewController] class], equalTo([MyDestinationViewController class]));
但它抱怨prepareForSegue:
没有调用该方法。
这里有什么问题?也许以异步方式performSegueWithIdentifier:
调用?prepareForSegue: