iOS Как проверить отключение контроллера представления с помощью OCMock? - PullRequest
0 голосов
/ 28 мая 2020

В некотором устаревшем коде, над которым я работаю, у меня есть функция, которая отклоняет контроллер представления и в завершении показывает предупреждение пользователю. Внутри моего класса 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 об этом. Любая помощь приветствуется.

1 Ответ

0 голосов
/ 28 мая 2020

Я думаю, что модульные тесты не должны тестировать UI.

...