やりたいこと
Flutter で Firebase とやり取りをする Repository 層のクラスの挙動をテストしたい。
しかし、FireStore などにおいてセキュリティルールを設けている場合は、アプリへのユーザログイン(Firebase認証)が必要である。
本記事では、「アプリへの電話番号認証 -> Firebase への通信」を行う。
統合テスト
アプリへのログイン
アプリへのログインはSMSログイン、つまり電話番号認証で行う。 電話番号認証の場合、ユーザはアプリに電話番号を入力して、Firebase から6桁の番号(確認コード)をSMSで受け取り、それをアプリに入力する。 これをテストケースで再現する必要がある。
電話番号と確認コードを固定する
Firebase では、テスト用に架空の電話番号を登録し、その電話番号と固定の確認コードを紐づけることができる。
やり方は公式ドキュメントを参照されたし。
Widget を操作する
WidgetTester
に対して、enter
やら tap
やら pump
をして操作をする。
サンプルコードはこちら。
Flutter と Firebase のやりとりをテストする
Integration Test を書く。 サンプルコードはこちら。