我想为我的iOS应用编写一个测试,用于验证从自定义注册的URL方案启动应用时是否显示正确的屏幕内容。
例如,用户会收到一封包含myapp://action1/1234
链接的电子邮件。当他们点击此链接时,我的应用程序将启动,屏幕显示“1234”。
在didFinishLaunchingWithOptions
我的AppDelegate检查是否存在launchOptions?[UIApplicationLaunchOptionsURLKey]
并采取相应措施。
如何编写UI测试,以便应用程序launchOptions字典包含应用程序启动时的预期URL?
答案 0 :(得分:1)
您可以利用launchEnvironment
上的XCUIApplication
结合目标应用中的几行自定义代码来完成这项工作。基本上你会为这个测试设置一个自定义的启动环境变量,在你的应用程序中,你将检查该变量并处理它,就像处理你期望的特定UIApplicationLaunchOptionsURLKey
的存在一样。 / p>
在您的应用中,您可以通过NSProcessInfo.processInfo.environment
检查该值,该值会返回环境变量字典。
(请注意,Xcode 7中的默认 XCTestCase 模板包含对XCUIApplication -launch
中setup
的调用,该调用将终止任何以前运行的实例,并通过以下方式启动新实例默认。)
编辑:想要补充一下,我已经在Xcode 7 UI Testing Tips的文章中写了一些关于这一点的内容,以防它有用。