【问题标题】:Xcode UI testing for external launching用于外部启动的 Xcode UI 测试
【发布时间】:2016-01-03 19:59:07
【问题描述】:

希望标题不要太含糊。在我正在测试的应用程序中,某些应用程序流会启动外部应用程序(例如 Safari 或 Facebook)。如何验证应用程序是否通过 UI 测试启动了它们?我可以像 openURL 一样通过单元测试进行测试,但 UI 是否有等价物?

离开应用程序后,我并没有真正尝试继续,只是为了测试并确保启动了适当的新应用程序或 URL。模拟器/记录器可以从启动的应用程序中选择 UI 元素,但测试在代码的那个点中断。我还尝试处理菜单栏上的某些内容(始终存在于应用程序中,例如汉堡包按钮),然后在启动另一个应用程序后检查它(以确保它不存在)。但这也打破了测试。

有解决办法吗?或者这只是需要通过单元测试来测试的东西?

【问题讨论】:

    标签: ios xcode7 ui-testing xcode-ui-testing


    【解决方案1】:

    正如您所提到的,UI 框架只能测试给定的应用程序。所以我会做一个断言来确保你之前的屏幕(在打开 safari 或 facebook 等之前)不再存在。比如:

    XCTAssertFalse(app.tables.elementBoundByIndex(0).exists, "Found element, so app didn't open safari/facebook")
    

    您只是断言元素不存在,请将app.tables.elementBoundByIndex(0).exists 更改为您要检查的任何元素。

    【讨论】:

    • 你会如何建议这样做?我尝试断言我在启动外部之前创建的 XCUIElement 不再存在,但它破坏了测试。
    • @ajc6432 抱歉——编辑了我的答案以包含一个示例。希望对人有所帮助!新框架很难适应(在我看来)。
    • 是的,我已经尝试过类似的方法,但效果不佳:/。不过谢谢。我同意,有时它有点不稳定。
    • @ajc6432 怎么没用?等待它还在检测元素吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 2013-10-05
    • 1970-01-01
    • 2015-10-08
    • 2015-11-20
    相关资源
    最近更新 更多