| name | testing-patterns |
| description | REST integration testing patterns with JUnit 5, Mockito, RestAssured. Use when writing integration tests that mock external dependencies, use Testcontainers/H2 for databases, and test endpoints with raw JSON bodies. |
REST Integration Testing Patterns
Write integration tests for REST endpoints using Quarkus test framework.
Quick Start
Basic REST integration test with RestAssured:
@QuarkusTest
class OrderResourceTest {
@Test
void shouldCreateOrder() {
given()
.contentType(ContentType.JSON)
.body("""
{
"customerId": "cust-123",
"items": [{"productId": "prod-1", "quantity": 2}]
}
""")
.when()
.post("/orders")
.then()
.statusCode(201)
.body("id", notNullValue())
.body("status", equalTo("PENDING"));
}
}
Core Patterns
REST Integration Tests
Use: Test full request/response cycle through REST layer
Stack: @QuarkusTest + RestAssured
Cookbook: rest-integration-tests.md
Mocking External Dependencies
Use: Isolate tests from external HTTP services, queues, etc.
Stack: @InjectMock with Mockito
Cookbook: mocking-dependencies.md
Database with Testcontainers
Use: Test against real PostgreSQL/MySQL
Stack: Quarkus DevServices or @Testcontainers
Cookbook: testcontainers-setup.md
Database with H2
Use: Fast in-memory alternative when container not needed
Stack: H2 with test profile
Cookbook: h2-setup.md
Raw JSON Request Bodies
Use: Test with exact JSON payloads (no object serialization)
Stack: Text blocks + JsonPath assertions
Cookbook: json-request-bodies.md
Test Structure & Lifecycle
Use: Organize tests with JUnit 5 features
Stack: @Nested, @BeforeEach, naming conventions
Cookbook: test-structure.md
Quick Reference
| Pattern | When to Use | Key Annotation/Tool |
|---|---|---|
| REST Integration | Test endpoint behavior | @QuarkusTest |
| Mock Dependencies | Isolate from external services | @InjectMock |
| Testcontainers | Need real database behavior | DevServices / Container |
| H2 In-Memory | Fast tests, simple queries | %test profile |
| Raw JSON Bodies | Exact payload control | Text blocks |
| Nested Test Classes | Group related scenarios | @Nested |
Cookbook Index
Core Testing: REST Integration Tests · Test Structure
Dependencies: Mocking Dependencies
Database: Testcontainers Setup · H2 Setup
Request/Response: JSON Request Bodies