CI (Continuous Integration)
コードの変更を頻繁にメインブランチに取り込む仕組み。
静的コード解析、ビルド、テスト、レビュー、マージなどの自動化が含まれる。
テストダブル
テスト対象が依存しているモジュールを置き換えるもの。
役割によって細分化される。
- テストスタブ
- テスト対象への入力を与えるもの
- テストスパイ
- テスト対象からの出力を受け取って保持するもの
- 検証はスパイから値を取り出して行われる
- モックオブジェクト
- テスト対象からの出力を受け取って検証するもの
- 検証はモック内で行われる
- ダミーオブジェクト
- テストに影響を与えないが、テストを実行するために必要なもの
- 関数の実行に必要なパラメータなど
- フェイクオブジェクト
- テスト対象が依存しているモジュールと同じように動作するもの
- 実際のDBの代わりにインメモリDBを使ってテストの実行時間を短くするなど
事前条件
テスト対象の実行前に満たす必要がある条件。
事後条件
テスト対象の実行後に満たす必要がある条件。