ios - 如何为本地通知接口(interface)编写适当的测试?

标签 ios swift unit-testing rx-swift

我正在使用 Swift 5Xcode 10.2
我支持 iOS 10 及更高版本

我有一个通知模型,我可以用一些数据(标题、正文、操作等)和一个静态类进行初始化,该静态类具有接受通知模型并根据其内容显示本地通知的函数。这都是 RX,函数的调用者可以订阅返回值,当用户与通知交互(点击、关闭、自定义操作等)时,它将触发一个事件。

现在我想测试这个类,我对编写测试和 RX 都很陌生,所以我在思考这个问题时遇到了一些麻烦。在类之外,我只有一个功能。
我在想我真正想要测试的是什么,归结为显示通知以及强类型用户交互的映射机制是否正常。
另一个问题是我并不总是知道显示本地通知的权限是否被授予,如果没有被授予如何测试是否一切正常。

如何授予在测试中显示通知的权限?

我如何测试通知是否显示?

如何在测试中与通知交互?

很抱歉以一个问题的价格问了三个问题,但它们是如此相关,我认为每个人最好不要用三个非常相似的问题来混淆网站。

最佳答案

您超出了单元测试的范围,您正在寻找的是 UI 测试。

如果你想进行单元测试,你需要创建可测试的类,你可以在其中专门测试小行为,例如你的 init 是否创建了你期望的值,某个方法是否在链后调用等。

对于通知是否显示并与之交互的实际测试,您必须深入研究 UI 测试,其中实际操作方法取决于您如何显示通知等。UI 测试非常简单易懂,您只需启动记录方法,然后清理并添加一些额外的检查逻辑。

这些是开始学习 UI 测试的好地方: https://developer.apple.com/library/archive/documentation/DeveloperTools/Conceptual/testing_with_xcode/chapters/09-ui_testing.html

https://www.raywenderlich.com/960290-ios-unit-testing-and-ui-testing-tutorial

https://www.swiftbysundell.com/posts/getting-started-with-xcode-ui-testing-in-swift

关于ios - 如何为本地通知接口(interface)编写适当的测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56395348/

相关文章:

ios - 如何使用 indexPath 访问自定义单元格中的 UiLabel 并将用户数据实现到标签中

ios - 使用 SwiftForms 将值从 Rest API 传递到表单

c# - 测试使用预处理器常量的代码

java - 使用 Junit 进行单元测试时保存文件的路径

iphone - 启用自动布局的 iOS 调整 View 大小

ios - 解析云代码给我代码: 141 error

ios - Apache Cordova - 不要构建 i386 架构

ios - 在 UICollectionView(或 UITableView)swift 中循环数据

ios - Xcode 和 Realm 浏览器的问题

java - 将基于配置文件的属性文件解析为 Spring 测试