如何为本地通知接口编写适当的测试?

How can I write proper tests for a local notification interface?

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

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

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

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

如何测试通知是否显示?

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

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

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

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

对于通知是否显示并与其交互的实际测试,您必须深入研究 UI 测试,其中实际 how-to 取决于您如何显示通知等。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