【问题标题】:iOS Unit Testing Bundle: Why Is The App Launched?iOS 单元测试包:为什么要启动该应用程序?
【发布时间】:2018-03-19 15:27:51
【问题描述】:
我已将一个单元测试目标和一个 UI 测试目标添加到我的应用程序项目中。当我运行单元测试时,我的应用程序就会启动。当我运行 UI 测试时,我的应用程序的“特殊 Runner 版本”会启动。我(几乎)理解运行器版本用于产生用户操作。但是为什么在运行单元测试时会启动我的应用程序?这意味着我的单元测试可以与正在运行的应用程序交互,但似乎并非如此。整个 XCTest 环境对我来说是新的。任何澄清都会很棒。谢谢。
【问题讨论】:
标签:
unit-testing
xcode9
xctest
【解决方案1】:
我错了。单元测试确实可以访问正在运行的应用程序。我添加了以下测试方法,它成功打印了我的应用程序页面视图控制器的列表和地图视图控制器属性:
func testAppAccess() {
if let pageVC = UIApplication.shared.keyWindow?.rootViewController?.childViewControllers[0] as? PageViewController {
print(pageVC.listViewController)
print(pageVC.mapViewController)
}
else { print("Could not obtain the application's page view controller") }
}