XCTest 应用程序测试和权限警报

Posted

技术标签:

【中文标题】XCTest 应用程序测试和权限警报【英文标题】:XCTest app tests and permissions alerts 【发布时间】:2016-11-17 22:27:40 【问题描述】:

我正在编写 XCTest 应用程序测试,通过在 UIApplication rootViewController 上调用 presentViewController 来测试一些 UIViewControllers

这很好用,除了权限对话框。一些UIViewControllers 使系统弹出权限对话框,用于访问摄像头或麦克风等内容。我不知道如何解雇他们。

如果这是一个 UI 测试,我可以使用 addUIInterruptionMonitorWithDescriptiontap 来消除警报。

但是,我不确定如何进行这项工作。应用测试能否访问 UI 测试功能?

【问题讨论】:

您好,您找到解决问题的方法了吗? 看来我们需要使用依赖注入 (DI) 和/或 Mock 类来完成此任务。 Lynda.com course 于 2017 年 5 月 24 日最后一次发布,讨论了这两个问题。 (本课程可作为 Lynda.com 的介绍或通过您当地的图书馆免费提供。) 【参考方案1】:

在 xcode ui 测试中,要访问系统弹出权限对话框,请使用以下代码:

self.addUIInterruptionMonitorWithDescription("your alert text", handler:  (alert) -> Bool in
     yourAlertElement.tap()
     return true
     )

希望这会有所帮助,如果您有任何困惑,请告诉我。

【讨论】:

addUIInterruptionMonitorWithDescription 在不进行 UI 测试时似乎不会触发

以上是关于XCTest 应用程序测试和权限警报的主要内容,如果未能解决你的问题,请参考以下文章

xctest 此应用试图在没有使用说明的情况下访问隐私敏感数据

iOS 中的 XCTest 和 UI 测试

XC测试。检测访问图库警报视图

一次性权限导致后台计划作业和警报被取消

如何使用 XCTest 框架测试基于 REST 的原生 iOS 应用程序?

我可以使用 XCTest 测试我的应用程序中某个部分的性能吗?