
Rest Assured
- 54 installs
- 27 repo stars
- Updated July 17, 2026
- claude-dev-suite/claude-dev-suite
Reference for the REST Assured Java library covering given-when-then HTTP requests, JSON/XML validation, and Spring Boot integration.
About
Documents REST Assured for testing REST APIs in Java with given-when-then request syntax and response validation. A developer uses it to write API integration tests for a Java or Spring Boot service.
- given-when-then GET/POST request examples
- Spring Boot integration with @SpringBootTest random port
Rest Assured by the numbers
- 54 all-time installs (skills.sh)
- Ranked #1,203 of 2,153 Testing & QA skills by installs in the Skillselion catalog
- Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/claude-dev-suite/claude-dev-suite --skill rest-assuredAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 54 |
|---|---|
| repo stars | ★ 27 |
| Last updated | July 17, 2026 |
| Repository | claude-dev-suite/claude-dev-suite ↗ |
What it does
Reference for the REST Assured Java library covering given-when-then HTTP requests, JSON/XML validation, and Spring Boot integration.
Files
REST Assured - Quick Reference
Deep Knowledge: Usemcp__documentation__fetch_docswith technology:rest-assuredfor comprehensive documentation.
When NOT to Use This Skill
- Unit Tests - Use
junitwith Mockito for isolated tests - E2E Browser Tests - Use Selenium or Playwright
- WebSocket Testing - Use dedicated WebSocket testing tools
- Non-Java Projects - Use language-specific HTTP clients
- GraphQL APIs - Consider GraphQL-specific testing tools
Pattern Essenziali
GET Request
given()
.baseUri("http://localhost:8080")
.contentType("application/json")
.when()
.get("/api/v1/users/1")
.then()
.statusCode(200)
.body("name", equalTo("John"));POST Request
given()
.contentType("application/json")
.body("""
{"name": "John", "email": "john@example.com"}
""")
.when()
.post("/api/v1/users")
.then()
.statusCode(201)
.body("id", notNullValue());Spring Boot Integration
@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);
}
}Authentication
// Bearer Token
given().header("Authorization", "Bearer " + token)
// Basic Auth
given().auth().basic("user", "pass")Hamcrest Matchers Comuni
| Matcher | Uso |
|---|---|
equalTo(value) | Exact match |
notNullValue() | Not null |
hasSize(n) | Collection size |
containsString(str) | String contains |
Anti-Patterns
| Anti-Pattern | Why It's Bad | Solution |
|---|---|---|
| Hardcoding base URI | Not portable across environments | Use RestAssured.baseURI or config |
| Not setting contentType | Request may fail or be misinterpreted | Always set contentType for POST/PUT |
| Ignoring status codes | Silent failures | Always assert status code |
| Not using path parameters | Hard to read, error-prone | Use {id} placeholders |
| Testing too much in one test | Hard to debug | One endpoint/scenario per test |
| No authentication testing | Security gaps | Test auth headers, tokens |
| Not validating response schema | API contract violations | Use JSON schema validation |
Quick Troubleshooting
| Problem | Likely Cause | Solution |
|---|---|---|
| "Connection refused" | Server not running | Start server, verify port |
| "Expected status 200 but was 500" | API error or wrong request | Check server logs, validate request body |
| "Cannot deserialize JSON" | Wrong content type or body format | Verify Content-Type header, check JSON |
| Authentication fails | Missing/wrong token | Check Authorization header |
| Timeout | Slow API or network issue | Increase timeout or investigate performance |
| "Path not found" | Wrong URL or method | Verify endpoint exists, check HTTP method |