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