Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 代码11:IOS13在单元测试时不再触发“ViewDidIspect”_Swift_Xcode_Unit Testing_Uiviewcontroller_Viewcontroller - Fatal编程技术网

Swift 代码11:IOS13在单元测试时不再触发“ViewDidIspect”

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

具体来说,在使用iOS 12进行测试时,这通常是通过的:

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它仍然必须被称为。在某些情况下,它可能会被异步调用。