在 Swift XCTest 案例中,navigationController 为零

Posted

技术标签:

【中文标题】在 Swift XCTest 案例中,navigationController 为零【英文标题】:navigationController is nil in Swift XCTest case 【发布时间】:2016-03-31 16:34:51 【问题描述】:

在测试视图控制器时,如何在测试用例中模拟/存根 navigationController?我得到一个运行时异常,因为在运行测试时它在我的 UIViewController 中为零。您不能直接设置它,因为它是只读的。我正在使用 Swift 2.2 和 XCTest。

【问题讨论】:

您可以初始化一个导航控制器并将被测视图控制器设置为其rootViewController。 【参考方案1】:

如上面评论中所述,这可以通过实例化 UINavigationController 并将您尝试测试的视图控制器添加到其视图数组中来实现。代码:

let navigationController = UINavigationController()
let yourViewController = YourUIViewController()
navigationController.viewControllers = [yourViewController]

【讨论】:

以上是关于在 Swift XCTest 案例中,navigationController 为零的主要内容,如果未能解决你的问题,请参考以下文章

如何创建一个在 XCTest 中定义按钮或文本字段的 swift 文件?

Swift XCTest 命名空间错误?

如何在 xctest 中使用 swift 点击地图注释时访问标注视图

XCTest 中的 Swift 模拟类

无法在 Swift 中从 XCTest 打开 NSStream

在 XCTest 案例中处理对 CLLocationManager 授权的请求