CI (Continuous Integration)

コードの変更を頻繁にメインブランチに取り込む仕組み。
静的コード解析、ビルド、テスト、レビュー、マージなどの自動化が含まれる。

テストダブル

テスト対象が依存しているモジュールを置き換えるもの。
役割によって細分化される。

  • テストスタブ
    • テスト対象への入力を与えるもの
  • テストスパイ
    • テスト対象からの出力を受け取って保持するもの
    • 検証はスパイから値を取り出して行われる
  • モックオブジェクト
    • テスト対象からの出力を受け取って検証するもの
    • 検証はモック内で行われる
  • ダミーオブジェクト
    • テストに影響を与えないが、テストを実行するために必要なもの
    • 関数の実行に必要なパラメータなど
  • フェイクオブジェクト
    • テスト対象が依存しているモジュールと同じように動作するもの
    • 実際のDBの代わりにインメモリDBを使ってテストの実行時間を短くするなど

事前条件

テスト対象の実行前に満たす必要がある条件。

事後条件

テスト対象の実行後に満たす必要がある条件。