必要なツール
Jest
Jest はシンプルさを重視した、快適な JavaScript テスティングフレームワーク。導入も非常に簡単
# Firebase Local Emulator Suite
Firebase Local Emulator Suite は、Cloud Firestore、Realtime Database、Authentication、Cloud Functions、Pub/Sub、Firebase Hosting を使用してアプリをローカルでビルドおよびテストするデベロッパー向けの高度なツールセットです。機能が豊富なユーザー インターフェースを備えており、アプリの本稼働やプロトタイピングにかかる時間を短縮できます。
取り扱うテストの種類
単体テスト
プログラムを構成する比較的小さな単位のテスト。FirebaseFunctionのテスト
インテグレーションテスト
FirebaseFunctionの関数が成功するかのテスト
テストのステップ
1. Controller層とTrigger層に分離する
Trigger層とは
export const test = functions.https.onRequest(async (req, res) => {
const controller = new TestController();
await contoller.execute();
res.sendStatus(200);
}
2. Controller層でのメソッドをFirebaseAdminSdkを扱っている処理と扱っていない処理で分けるようにする
3.JestでFirebaseAdminSdk非依存の単体テストを書く
4. Integrationテスト
Integrationテストのセットアップ方法
残る課題
- emulator経由で、firebase admin sdkでデータを取得しても取得できない
諸処疑問点
メモ
- emulatorをstartする前にtypescriptをcompileする必要がある(emulatorはそこまでやってくれない)