在iOS中测试viewDidLoad

假设我们有以下视图控制器

 类ListController:UIViewController { 
覆盖func viewDidLoad(){
super.viewDidLoad()
view.backgroundColor = .white
}
}

了解viewDidLoad

我们知道第一次创建viewDidLoad会调用viewDidLoad 。 因此,在单元测试中,如果使用viewDidLoad进行触发,则会陷入陷阱

  func testSetup(){ 
让控制器= ListController()
controller.viewDidLoad()
}

为什么viewDidLoad被调用两次?

  • 在测试中被调用一次
  • 在您的viewDidLoad方法中,您将访问第一次创建的view ,因此它将再次触发viewDidLoad

正确的方法

最佳做法不是自己触发事件,而是做一些事情使事件发生。 在单元测试中,我们只是访问view以触​​发viewDidLoad

  func testSetup(){ 
让控制器= ListController()
让_ = controller.view
}

原始故事https://github.com/onmyway133/blog/issues/52