mcpField
R
rest-assured

rest-assured

github.com/claude-dev-suiteテスト・品質4654 回インストール2 日前に更新
リポジトリ

rest-assured について

Java HTTP API の REST Assured テスト向けクイックリファレンススキルです。リクエスト、アサーション、認証、トラブルシューティングを扱います。

主な機能

  1. 01GET と POST のリクエスト例
  2. 02ステータスと本文のアサーション
  3. 03Bearer と Basic 認証
  4. 04Spring Boot テスト設定
  5. 05よくある問題の調査

活用シーン

  1. 01Java API エンドポイントのテスト
  2. 02ステータスと JSON フィールドの確認
  3. 03認証付きリクエストの検証

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/claude-dev-suite/claude-dev-suite --skill rest-assured

インストール後、Claude Code で/rest-assuredを入力して読み込まれたか確認します。

詳細

REST Assured - クイックリファレンス

詳細な知識:テクノロジーに rest-assured を指定して mcp__documentation__fetch_docs を使用すると、包括的なドキュメントを参照できます。

このスキルを使用しない場合

  • ユニットテスト - 分離されたテストには Mockito と junit を使用してください
  • E2E ブラウザーテスト - Selenium または Playwright を使用してください
  • WebSocket テスト - 専用の WebSocket テストツールを使用してください
  • Java 以外のプロジェクト - 言語固有の HTTP クライアントを使用してください
  • GraphQL API - GraphQL 専用のテストツールを検討してください

基本パターン

GET リクエスト
given()
    .baseUri("http://localhost:8080")
    .contentType("application/json")
.when()
    .get("/api/v1/users/1")
.then()
    .statusCode(200)
    .body("name", equalTo("John"));
POST リクエスト
given()
    .contentType("application/json")
    .body("""
        {"name": "John", "email": "[email protected]"}
        """)
.when()
    .post("/api/v1/users")
.then()
    .statusCode(201)
    .body("id", notNullValue());
Spring Boot との統合
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
class UserApiTest {
    @LocalServerPort
    private int port;

    @BeforeEach
    void setUp() {
        RestAssured.port = port;
    }

    @Test
    void shouldGetUsers() {
        given()
        .when().get("/api/v1/users")
        .then().statusCode(200);
    }
}
認証
// Bearer Token
given().header("Authorization", "Bearer " + token)

// Basic Auth
given().auth().basic("user", "pass")

よく使われる Hamcrest マッチャー

マッチャー用途
equalTo(value)完全一致
notNullValue()null ではない
hasSize(n)コレクションのサイズ
containsString(str)文字列を含む

アンチパターン

アンチパターン問題点解決策
ベース URI をハードコードする環境間で移植できないRestAssured.baseURI または設定を使用する
contentType を設定しないリクエストが失敗したり、誤って解釈されたりする可能性があるPOST/PUT では常に contentType を設定する
ステータスコードを無視するエラーが検出されない常にステータスコードを検証する
パスパラメーターを使用しない読みにくく、エラーが起きやすい{id} プレースホルダーを使用する
1 つのテストでテストしすぎるデバッグが難しいテストごとにエンドポイントまたはシナリオを 1 つにする
認証をテストしないセキュリティ上の不備が生じる認証ヘッダーとトークンをテストする
レスポンススキーマを検証しないAPI コントラクトに違反するJSON スキーマ検証を使用する

トラブルシューティング(クイックリファレンス)

問題考えられる原因解決策
"Connection refused"サーバーが起動していないサーバーを起動し、ポートを確認する
"Expected status 200 but was 500"API エラーまたはリクエストの誤りサーバーログを確認し、リクエストボディを検証する
"Cannot deserialize JSON"コンテンツタイプまたはボディ形式が正しくないContent-Type ヘッダーを確認し、JSON を確認する
認証に失敗するトークンがない、または正しくないAuthorization ヘッダーを確認する
タイムアウトAPI の応答が遅い、またはネットワークに問題があるタイムアウトを延長するか、パフォーマンスを調査する
"Path not found"URL またはメソッドが正しくないエンドポイントの存在を確認し、HTTP メソッドを確認する

リファレンスドキュメント

コメント