使用 URL 启动选项启动 XCode UI 测试

Gre*_*eri 5 xcode ios swift xcode-ui-testing

我想为我的 iOS 应用程序编写一个测试,以验证从自定义注册的 URL 方案启动应用程序时显示正确的屏幕内容。

例如,用户收到一封电子邮件,其中包含 的链接myapp://action1/1234。当他们点击此链接时,我的应用程序将启动并且屏幕显示“1234”。

didFinishLaunchingWithOptions我的 AppDelegate 中检查是否launchOptions?[UIApplicationLaunchOptionsURLKey]存在并采取适当的操作。

如何编写 UI 测试,以便应用程序启动时应用程序 launchOptions 字典包含预期的 URL?

小智 1

您可以通过结合目标应用程序中的几行自定义代码来实现此launchEnvironment目的XCUIApplication。基本上,您将为此测试设置一个自定义启动环境变量,并且在您的应用程序中,您将检查该变量并以与处理您UIApplicationLaunchOptionsURLKey期望的特定变量的存在相同的方式处理它。

在您的应用程序中,您可以检查该值,通过NSProcessInfo.processInfo.environment它返回环境变量的字典。

(请注意,Xcode 7 中的默认XCTestCase模板包含一个调用,XCUIApplication -launch其中setup将终止任何先前运行的实例,并默认启动一个新实例。)

编辑:想补充一下,我在Xcode 7 UI 测试技巧 的文章中写了更多关于此的内容,以防它有帮助。