我需要编写一个单元测试来检查按下按钮是否会调用正确的 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;
被调用。
我做错了什么,我应该怎么做才能通过测试?
最佳答案
我怀疑 myViewController.loginBtn
是 nil,因为您还没有加载 View 。尝试调用 [myViewController view]
以首先加载 View 。
关于ios - 如何编写单元测试来检查按下按钮是否会导致调用正确的 IBAction?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17061645/