6
在我的应用程序中,我希望声明已经以正确的格式添加了通知。我通常会使用依赖注入来做到这一点,但我想不出一种方法来测试新的API。单元测试iOS 10通知
我开始创建一个模拟对象,将捕获的通知要求:
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
没有可访问的初始化我不能实例模拟。
我甚至不确定我是否可以通过添加通知请求并获取当前通知来进行测试,因为测试需要在模拟器上请求允许停止测试的权限。目前我已经将通知逻辑重构为一个包装器,所以我至少可以在整个应用程序中对其进行嘲弄并手动测试。
我有比手动测试更好的选择吗?
似乎是一个聪明的解决方案,谢谢! – squarefrog
这是一个很好的回应。你认为有可能遵循类似的方法来模拟'func getNotificationSettings(completionHandler:@escaping(UNNotificationSettings) - > Swift.Void)'?我无法模拟返回的'UNNotificationSettings'对象,因为它无法实例化。 – JimmyB