APIのレスポンスJSONが一致するかバリデーションするためのCommitteeというgemがあります。このCommitteeをRailsプロジェクト中のテストから使うためのCommittee::Railsというgemがあります。2.0に対応しています。持っているので、このメソッドを使ってAPIドキュメントの実際の動作の乖離を未然に防ぐことができます。2.0の形式で書いたAPIドキュメントを使って、Railsで作ったAPIのエンドポイントからのレスポンスをRspecのテストでバリデーションしてみます。使用するライブラリのバージョンライブラリのバージョンは次のものとします。今回、次のようなAPIエンドポイントを持つ単純なアプリケーションを考えます。IDを持つユーザを返します。ここで、ユーザは次のような属性を持つデータとします。○ageすなわち、レスポンスのJSONは次のような形となります。2.0形式のドキュメントを書きます。}}ここでは次の点に注目してもらえればOKです。いうメソッドをオーバーライドします。Schemaで実際のJSONをバリデーションするときに、そのAPIドキュメントを読み込むメソッドです。2.0のドライバを使いたいので、自前でオーバーライドし直します。存在するOpenAPIドキュメントを読み込んでいます。Schemaに一致するかどうかをRailsのテストで確認できるようになりました。テストはCommittee::RailsのREADMEに書かれているものとまったく同じで、RSpecを使うと次のように書けます。含めなかった場合、次のようなエラーが出ます。含めた場合、次のようなエラーが出ます。含めなくてもエラーにはなりません。注意点として、ライブラリの実装上、正常系(ステータスコード200〜300番台)のレスポンスだけテストでき、異常系(ステータスコード400〜500番台)についてはテストできません*1。specでCommitteeを使ってレスポンスJSONを自動的にバリデー...この記事の続きのようなものです。月別アーカイブ検索スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。