0

ボタンを押すと適切な呼び出しが行われることを確認する単体テストを作成する必要があります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;呼び出されました。

何を間違えたのか、テストに合格するにはどうすればよいのか?

4

1 に答える 1

2

myViewController.loginBtnビューをロードしていないので、nil ではないかと思います。[myViewController view]ビューが最初に読み込まれるように呼び出してみてください。

于 2013-06-12T15:57:19.957 に答える