在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
- 使用Segue在视图控制器之间传递数据
- iPhoneconfiguration实用程序未能find“Apple Mobile Device Support”
- Swift —以编程方式自动布局和绑定方法(2/4)
- MergeSwiftModule – 在Xcode 6.3中构建一个Swift应用程序卡在“Merge MyApp.swiftmodule”中
- 如何在UIWebView中使用苹果(在应用程序购买)?
- 使用与RxCocoa绑定的可点击按钮在Playgrounds中测试RxSwift代码。
- 代表客户端将iOS应用程序发布到App Store
- 在子视图控制器中的UITableView委托
- 如何关闭UINavigationBar的大型游戏?