В некотором устаревшем коде, над которым я работаю, у меня есть функция, которая отклоняет контроллер представления и в завершении показывает предупреждение пользователю. Внутри моего класса LibraryController
у меня есть что-то вроде этого:
LibraryController.m
- (void)libraryNotFound:(NSNotification *)notif {
[self dismissViewControllerAnimated:NO completion:^{
[AlertUtils showAlertWithTitle:@"some title"] andMessage:@"some message"];
}];
}
Класс AlertUtils
внутренне находит контроллер вида сверху и показывает на нем предупреждение.
В моем тестовом классе I иметь следующее:
- (void)testLibraryNotFound {
id mockAlertUtils = OCMSafeClassMock([AlertUtils class]);
LibraryController *vc = [[LibraryController alloc] init];
OCMStub([mockAlertUtils showAlertWithTitle:@"some title"] andMessage:@"some message"]);
[vc libraryNotFound:nil];
OCMVerify([mockAlertUtils showAlertWithTitle:@"some title"] andMessage:@"some message"]);
}
Этот тестовый пример проходит нормально, однако я не знаю, как его изменить, чтобы я мог убедиться, что предупреждение отображается только и только после того, как контроллер закрывается? В основном знают, что в обработчике завершения предупреждение не отображается, а отображается только после него. Я предполагаю, что это как-то связано с ожиданиями, но я не знаю, как go об этом. Любая помощь приветствуется.