我在尝试使用 XCTest 进行自动化单元测试时遇到了崩溃。编写“testLogin”函数。
func testLogin() {
let controller = ViewController()
controller.usernameTextField.text = "username"
controller.passwordTextField.text = "password"
controller.LoginPressed(self)
XCTAssert(true, "Pass")
}
用户名和密码文本字段是 Controller 的 IBOutlets。但是,当我尝试使用 XCTest 测试应用程序时,应用程序在 usernameTextField 处崩溃,说值为 nil。 IBOutlet 怎么可能是 nil。我是不是错过了这里的任何设置?
最佳答案
在调用 viewDidLoad 方法之前,IBOutlets 为 nil。为了从单元测试中调用它,您应该在访问 socket 之前调用 View Controller 的 View 属性。 这将调用 didLoad:
func testLogin() {
let controller = ViewController()
controller.view
controller.usernameTextField.text = "username"
controller.passwordTextField.text = "password"
controller.LoginPressed(self)
XCTAssert(true, "Pass")
}
关于ios - 使用 XCTest iOS 进行自动单元测试时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28468082/