在我的应用程序中,我希望断言通知已经以正确的格式添加。我通常会使用依赖注入来实现这一点,但我想不出一种方法来测试新的
UNUserNotificationCenter
API。我开始创建一个捕获通知请求的模拟对象。import Foundation
import UserNotifications
class NotificationCenterMock: UNUserNotificationCenter {
var request: UNNotificationRequest? = nil
override func add(_ request: UNNotificationRequest, withCompletionHandler completionHandler: ((Error?) -> Void)? = nil) {
self.request = request
}
}
然而,UNUserNotificationCenter
没有可以访问的初始化器,我无法实例化模拟对象。
我甚至不确定是否可以通过添加通知请求和获取当前通知来进行测试,因为测试需要在模拟器上请求权限,这将使测试停顿。目前,我已经将通知逻辑重构为包装器,因此我可以在应用程序中模拟它并手动测试。
除了手动测试,我还有其他更好的选择吗?
func getNotificationSettings(completionHandler: @escaping (UNNotificationSettings) -> Swift.Void)
?我在模拟返回的UNNotificationSettings
对象时遇到了麻烦,因为它无法被实例化。 - JimmyB