如何为本地通知界面编写适当的测试?

Posted

技术标签:

【中文标题】如何为本地通知界面编写适当的测试?【英文标题】:How can I write proper tests for a local notification interface? 【发布时间】:2019-05-31 12:43:22 【问题描述】:

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

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

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

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

如何测试通知是否显示?

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

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

【问题讨论】:

【参考方案1】:

您在这里超出了单元测试的范围,而您正在寻找的是 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 本地通知内容提供自定义辅助功能文本 - UNNotificationContent

使用 Firebase 的本地通知

每周特定日期的本地通知

如何为用户提供丰富的通知服务(包括图片图标)?