ios - 使用 XCTest iOS 进行自动单元测试时应用程序崩溃

标签 ios swift automation xctest

我在尝试使用 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/

相关文章:

ios - 单击TextView中的链接时如何防止默认浏览器打开?

ios - 不断调用方法,直到 View 被取消

ios - Swift 3 Table View - 从某些单元格中删除堆栈 View

ios - Swift - 呈现 UIViewController

sharepoint - 使用 XMLHTTP 删除 Sharepoint 文件

ios - Thread1v :signal SIGABRT

swift - 如何快速纠正 startGyroscopeUpdatesToQueue 错误

swift - 可选的关闭并检查它是否为零

arrays - 我可以在 Protractor by.Repeater 中取回数组而不是字符串吗?

python - 锁定屏幕打开时使用 Python 自动生成上下文菜单