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

4
我想为我的iOS应用编写一个测试,以验证当应用从自定义注册的URL scheme启动时是否显示了正确的屏幕内容。例如,用户收到一封电子邮件,其中包含一个链接myapp://action1/1234。当他们点击此链接时,我的应用程序将启动并显示屏幕上的“1234”。在didFinishLaunchingWithOptions中,我的AppDelegate检查是否存在launchOptions?[UIApplicationLaunchOptionsURLKey],并采取适当的动作。我该如何编写UI测试,以便在应用程序启动时,launchOptions字典包含预期的URL?

有点晚了,只有一个链接,但我认为这就是你想要的:https://aross.se/2018/06/17/ios-ui-tests-for-custom-url-scheme.html - Jonny
1个回答

1
您可以通过在目标应用程序中使用几行自定义代码与XCUIApplication上的launchEnvironment相结合来实现此功能。基本上,您将为此测试设置自定义启动环境变量,在您的应用程序中,您将检查该变量并处理它,就像处理特定的UIApplicationLaunchOptionsURLKey的存在一样。
在您的应用程序中,您可以通过NSProcessInfo.processInfo.environment检查该值,该方法返回一个包含环境变量的字典。
(请注意,Xcode 7中默认的XCTestCase模板在setup中调用XCUIApplication -launch,这将默认终止任何先前运行的实例,并启动一个新实例。)
(编辑:想要补充一下,我在Xcode 7 UI Testing Tips的文章中写了更多关于这个的内容,希望有所帮助。)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接