ios – 检查UIAlertController是否在XCTest案例中呈现

我正在为应用程序编写单元测试,并想检查是否在特定场景中呈现了UIAlertController.
-(void)testBadLogin {
    // enter username and password in UITextFields
    self.viewController.usernameField.text = @"[email protected]";
    self.viewController.passwordField.text = @"incorrect_pass";
    [loginButton sendActionsForControlEvents: UIControlEventTouchUpInside];

    // this isn't right
    XCTAssertNotNil([self.viewController alertController],@"alertController should appear"); 
}

如何检查UIAlertController是否已显示在当前视图之上?

解决方法

“XCTest并不意味着用于测试UI组件.”不是真的准确.我正在使用XCTest进行几乎所有的UI测试,它运行得很好.正确答案应为“嘲弄”.

我会使用Ocmock来模拟测试的视图控制器并“验证”使用警报控制器调用方法presentViewController …这是一个简洁的解决方案,工作得很好. (你甚至可以忽略警报控制器传递给这个方法,只测试视图控制器已经传递方法presentViewController …)

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...