【こんとらくとてすと】
コントラクトテスト とは?
💡 サービス間の「約束事」をテストで自動チェックする信頼の契約書
📌 このページのポイント
コントラクトテストって普通のテストと何が違うの?
約束って具体的にどういうものなの?
たとえば「/users/1にGETリクエストを送ったら、nameフィールドが文字列で返ってくる」みたいな取り決めだね。Consumer側がこの期待を契約ファイルに書いて、Provider側がそれを満たすかチェックするんだ
全部のサービスを結合テストすればいいんじゃないの?
どんなツールを使うの?
一番有名なのはPactだね。Consumer側でテストを実行すると契約ファイル(Pact file)が生成されて、それをProvider側で再生して検証する。Pact Brokerで契約を一元管理することもできるよ
Provider側がAPIを変更したらどうなるの?
まとめ:ざっくりこれだけ覚えればOK!
「コントラクトテスト」って出てきたら「API同士の約束どおりにデータをやり取りしているかを自動検証する仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Contract Testing」 = 契約テスト
💬 法律の「契約(contract)」から来ているよ。サービス同士が結ぶ取り決めをテストコードで表現するんだ