JAL*_*JAL 7 uiviewcontroller ios xctest uialertcontroller
我正在为一个应用程序编写单元测试,并想检查是否UIAlertController在特定场景中呈现了一个.
-(void)testBadLogin {
// enter username and password in UITextFields
self.viewController.usernameField.text = @"test@test.com";
self.viewController.passwordField.text = @"incorrect_pass";
[loginButton sendActionsForControlEvents: UIControlEventTouchUpInside];
// this isn't right
XCTAssertNotNil([self.viewController alertController], @"alertController should appear");
}
Run Code Online (Sandbox Code Playgroud)
如何检查UIAlertController当前视图上是否显示了?
"XCTest并不意味着用于测试UI组件." 不是真的准确.我正在使用XCTest进行几乎所有的UI测试,它运行得很好.正确答案应为"嘲弄".
我会使用OCMock来模拟测试的视图控制器,并"验证"使用警报控制器调用方法presentViewController ... 这是一个简洁的解决方案,工作得很好.(你甚至可以忽略警报控制器传递给这个方法,只是测试视图控制器已经传递了方法presentViewController ...)