Мне нужно написать единичный тест, который проверяет, что нажатие кнопки приведет к вызову нужного IBAction
.Как написать единичный тест, который проверяет, что нажатие кнопки приведет к вызову надлежащего IBAction?
Вот мой метод испытания:
- (void)testWhether_loginBtnTapped_IsCalledAfterUserTapLoginButton
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
GoingToLoginViewController *myViewController = [storyboard instantiateViewControllerWithIdentifier:@"GoingToLoginVC"];
id vcMock = [OCMockObject partialMockForObject:myViewController];
[[vcMock expect] loginBtnTapped:[OCMArg any]];
[myViewController.loginBtn sendActionsForControlEvents:UIControlEventTouchUpInside];
[vcMock verify];
}
Когда я запускаю тест у меня есть журнал сообщение:
error: testWhether_loginBtnTapped_IsCalledAfterUserTapLoginButton (Ticket2Tests) failed: OCPartialMockObject[GoingToLoginViewController]: expected method was not invoked: loginBtnTapped:<OCMAnyConstraint: 0xfd3aeb0>
И когда я бегу мое приложение на тренажере кнопка работает надлежащим образом и - (IBAction)loginBtnTapped:(id)sender;
был называется.
Что я сделал не так, и что мне делать, чтобы пройти тест?
Пожалуйста, взгляните на этот вопрос: [Как вы проверите свои графические интерфейсы Cocoa?] (Http://stackoverflow.com/questions/545768/how-do-you-test-your-cocoa-guis). Ответ вполне применим для Cocoa Touch. Вы можете проверить фактическое взаимодействие с тестами UI, например, [Keep It Functional (KIF)] (https://github.com/square/KIF). – mAu