15

かなり早い段階でローカル通知のアクセス許可を要求するアプリで、 KIFで受け入れテストを作成しようとしています。残念ながら、iOS シミュレーターのセキュリティ上の理由により、 KIF を使用して iOS パーミッション アラートの受け入れを自動化することはできません。https://stackoverflow.com/a/28443743/62によると、場所、アドレス帳、カレンダー、写真の許可アラートを無効にする方法があるようですが、ローカル通知許可を無効にする方法が見つかりませんでした. リンクされた質問から資格のアプローチを試みましたが、次のキーはどれも機能しませんでした:

kTCCServiceNotifications
kTCCServiceNotification
kTCCServiceLocalNotification
kTCCServiceLocalNotifications

他のアイデアはありますか?今のところ、受け入れテストの実行時にローカル通知を条件付きで無効にするように本番コードを変更することで、この問題を回避していますが、理想的にはそうする必要はありません。

4

2 に答える 2

2

残念ながら、自動化テストでこれを行う良い方法はないと思います。シミュレーターをリセットしても、権限をリセットするには不十分な場合があることを私は知っています。システムコールではなく、独自のアプリケーションコードをテストするようにテストを設計します。

ユーザーが通知を許可するかどうかに基づいてさまざまな機能をテストする 1 つの方法は、アクセス許可を確認する呼び出しを抽出し、テストでこのメソッドをスタブ化することです。目標は iOS が機能するかどうかをテストすることではなく、アプリケーション コードが正しいかどうかをテストすることであるため、この方法がベスト プラクティスとなります。

于 2015-07-16T12:40:37.643 に答える