ボタンを押すと適切な呼び出しが行われることを確認する単体テストを作成する必要があります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;
呼び出されました。
何を間違えたのか、テストに合格するにはどうすればよいのか?