私のアプリでは、正しい形式で通知が追加されていると主張したいと思います。私は通常、依存性注入でこれを行うだろうが、新しいUNUserNotificationCenter
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