Swift 代码11:IOS13在单元测试时不再触发“ViewDidIspect”
具体来说,在使用iOS 12进行测试时,这通常是通过的:Swift 代码11:IOS13在单元测试时不再触发“ViewDidIspect”,swift,xcode,unit-testing,uiviewcontroller,viewcontroller,Swift,Xcode,Unit Testing,Uiviewcontroller,Viewcontroller,具体来说,在使用iOS 12进行测试时,这通常是通过的: let viewController = ViewController() let _ = viewController.view let window = UIWindow(frame: UIScreen.main.bounds) window.layer.speed = 10 viewController.modalPresentationStyle = .fullScreen viewController.beginAppearan
let viewController = ViewController()
let _ = viewController.view
let window = UIWindow(frame: UIScreen.main.bounds)
window.layer.speed = 10
viewController.modalPresentationStyle = .fullScreen
viewController.beginAppearanceTransition(true, animated: false)
window.rootViewController = viewController
window.makeKeyAndVisible()
viewController.endAppearanceTransition()
...
XCTAssert(vc.viewDidAppearCalled == true)
不再过去。
ViewController的viewDidLoad
和视图将出现
仍会被调用
知道发生了什么事吗
这里可以找到完整的示例:在iOS13中,ViewController生命周期发生了细微的变化<代码>视图将出现etc现在异步加载,因此测试需要某种级别的异步测试(或等待)。找不到关于此的任何文档,我确信其中有微妙之处,但这解决了问题。在更新现有项目时,我也遇到了此问题。iOS13设备不调用ViewDidAspect。这种情况发生在机组外部tests@LeeIrvine它仍然必须被称为。在某些情况下,它可能会被异步调用。