我已经创建了一个自定义pushViewController方法,一旦完成转换就会带回调。它适用于应用程序,但不能使其适用于单元测试。这是UINavigationController扩展:
extension UINavigationController {
public func pushViewController(_ viewController: UIViewController, animated: Bool, completion: @escaping (Void) -> Void) {
pushViewController(viewController, animated: animated)
guard animated, let coordinator = transitionCoordinator else {
completion()
return
}
coordinator.animate(alongsideTransition: nil) { _ in completion() }
}
}
当我在单元测试中调用它时transitionCoordinator
总是为零。我尝试过设置一个窗口,将导航设置为根控制器,并使该窗口成为键和可见。我也尝试访问view属性,因此vc已加载但似乎没有任何效果。 transitionCoordinator
属性总是为零。
有什么想法吗?这是单元测试的预期行为吗?