Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Design integration test scenarios with database fixtures, external service mocks, contract testing, and test environment setup for microservices and APIs.
.claude/skills/williamzujkowski-integration-testing-designer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 107% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 100% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 55% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 99% | 0% |
Trigger conditions:
Use this skill when you need to test service boundaries, validate integration points, ensure contract compatibility, or create reproducible test environments with real infrastructure dependencies.
Before execution, verify:
NOW_ET = 2025-10-26T02:31:19-04:00 (NIST/time.gov semantics, America/New_York)services is non-empty array with service namesdependencies includes keys: databases, apis, queues, or cachestest_scope is one of: smoke, happy-path, edge-cases, fulltech_stack (if provided) contains valid testing framework identifiersNOW_ET; verify links resolveAbort conditions:
Goal: Generate basic integration test structure with database fixture and API mock.
java // Example: Spring Boot integration test @SpringBootTest @Testcontainers class PaymentServiceIntegrationTest { @Container static PostgreSQLContainer<?> postgres = new PostgreSQLContainer<>("postgres:15-alpine");
@Test void processPayment_withValidCard_createsTransaction() { // Arrange: seed database, mock Stripe // Act: call PaymentService // Assert: verify database state and external call } }
Token budget: ≤2k tokens
Goal: Generate complete test scenarios, fixtures, mocks, and environment setup.
Token budget: ≤6k tokens total (including T1)
Goal: Add advanced integration patterns, performance considerations, and CI/CD integration.
Token budget: ≤12k tokens total (including T1 + T2)
Test scope adjustments:
Database strategy selection:
Mock vs. Real service:
Effort estimation (per integration point):
Stop conditions:
Required fields (all outputs):
typescriptinterface IntegrationTestDesign { test_scenarios: Array<{ name: string; description: string; services_under_test: string[]; dependencies: string[]; test_steps: Array<{ step: string; action: string; expected_outcome: string; }>; fixtures_required: string[]; mocks_required: string[]; }>; fixtures: { database_seeds: Array<{ table: string; format: "sql" | "json" | "yaml"; content: string; }>; factory_functions?: string; // Code snippet }; environment_setup: { format: "docker-compose" | "testcontainers" | "kubernetes"; content: string; // YAML or code setup_instructions: string; }; contract_tests?: Array<{ consumer: string; provider: string; contract_format: "pact" | "spring-cloud-contract" | "openapi"; interactions: Array<{ description: string; request: object; response: object; }>; }>; mock_configurations: Array<{ service_name: string; tool: "wiremock" | "mockserver" | "nock" | "responses"; stubs: Array<{ endpoint: string; method: string; response_body: object; status_code: number; }>; }>; }
Format:
test_scenarios: Array of objects with consistent structurefixtures: SQL/JSON with valid syntaxenvironment_setup: Valid Docker Compose YAML or TestContainers codecontract_tests: Pact-compatible JSON or Spring Cloud Contract DSLValidation:
yamlINPUT: services: ["payment-api"] dependencies: {databases: ["postgres"], apis: ["stripe"]} test_scope: "happy-path" OUTPUT: test_scenarios: - name: "Process payment and store transaction" test_steps: - "Setup: Start PostgreSQL, seed users, stub Stripe API" - "Execute: POST /payments with valid card" - "Assert: 201 response, transaction in DB, Stripe called" fixtures: database_seeds: - table: "users" content: "INSERT INTO users (id, email) VALUES (1, 'test@example.com');" mock_configurations: - service_name: "stripe" tool: "wiremock" stubs: [{endpoint: "/v1/charges", status: 200}]
Token budgets (mandatory):
Safety checks:
Auditability:
NOW_ETlatest)Determinism:
Validation checklist:
docker-compose config)Primary sources (accessed 2025-10-26):
Lightweight, throwaway instances of databases, message brokers, and other services for integration testing.
Flexible API mocking tool for HTTP-based services with request matching and response stubbing.
Consumer-driven contract testing framework for validating API interactions between services.
Official Spring Boot testing documentation covering @SpringBootTest, MockMvc, and TestContainers integration.
Python testing framework with powerful fixtures and parametrization for integration testing.
Additional templates:
examples/payment-integration-test.java for complete Java exampleresources/docker-compose-test.yml for multi-service test environmentresources/pact-contract-example.json for contract test templateRelated skills:
testing-strategy-composer (for overall testing strategy)api-design-validator (for API contract design)database-optimization-analyzer (for test database performance)End of SKILL.md
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | fail→pass | 13,360 | 8,820 | -34% | 1 | 1 | 0% | 2,280 | 4,718 | +107% | 0 | 0 | — |
case-06 | pass→pass | 11,031 | 11,995 | +9% | 1 | 1 | 0% | 2,125 | 5,432 | +156% | 0 | 0 | — |
case-01 | fail→fail | 25,678 | 15,661 | -39% | 1 | 1 | 0% | 6,236 | 6,968 | +12% | 0 | 0 | — |
case-02 | fail→pass | 22,757 | 13,780 | -39% | 1 | 1 | 0% | 5,410 | 6,538 | +21% | 0 | 0 | — |
case-03 | fail→fail | 26,525 | 21,108 | -20% | 1 | 1 | 0% | 6,226 | 8,237 | +32% | 0 | 0 | — |
case-04 | pass→pass | 10,474 | 8,041 | -23% | 1 | 1 | 0% | 1,893 | 4,774 | +152% | 0 | 0 | — |
case-07 | pass→pass | 9,011 | 11,745 | +30% | 1 | 1 | 0% | 1,583 | 5,536 | +250% | 0 | 0 | — |
case-08 | fail→pass | 13,198 | 8,350 | -37% | 1 | 1 | 0% | 2,357 | 4,708 | +100% | 0 | 0 | — |
case-09 | fail→pass | 18,357 | 11,186 | -39% | 1 | 1 | 0% | 3,421 | 5,300 | +55% | 0 | 0 | — |
case-10 | pass→pass | 16,045 | 16,585 | +3% | 1 | 1 | 0% | 3,520 | 7,064 | +101% | 0 | 0 | — |
case-11 | pass→pass | 12,931 | 9,150 | -29% | 1 | 1 | 0% | 2,735 | 5,101 | +87% | 0 | 0 | — |
case-12 | fail→pass | 16,490 | 14,635 | -11% | 1 | 1 | 0% | 2,979 | 5,922 | +99% | 0 | 0 | — |
case-13 | pass→pass | 8,250 | 4,172 | -49% | 1 | 1 | 0% | 1,424 | 3,930 | +176% | 0 | 0 | — |
case-14 | pass→pass | 13,194 | 11,496 | -13% | 1 | 1 | 0% | 2,105 | 5,371 | +155% | 0 | 0 | — |
case-15 | fail→pass | 11,650 | 4,048 | -65% | 1 | 1 | 0% | 1,984 | 3,870 | +95% | 0 | 0 | — |
case-16 | fail→fail | 12,308 | 9,381 | -24% | 1 | 1 | 0% | 2,335 | 5,089 | +118% | 0 | 0 | — |
case-17 | pass→pass | 8,384 | 4,401 | -48% | 1 | 1 | 0% | 1,571 | 4,083 | +160% | 0 | 0 | — |
case-18 | fail→pass | 13,577 | 8,472 | -38% | 1 | 1 | 0% | 2,893 | 5,095 | +76% | 0 | 0 | — |
case-19 | fail→pass | 7,874 | 2,222 | -72% | 1 | 1 | 0% | 1,502 | 3,478 | +132% | 0 | 0 | — |
case-20 | fail→pass | 11,572 | 4,086 | -65% | 1 | 1 | 0% | 2,132 | 3,902 | +83% | 0 | 0 | — |
case-21 | fail→pass | 13,824 | 11,349 | -18% | 1 | 1 | 0% | 2,494 | 5,155 | +107% | 0 | 0 | — |
case-22 | pass→pass | 13,214 | 11,835 | -10% | 1 | 1 | 0% | 2,133 | 5,107 | +139% | 0 | 0 | — |
case-23 | pass→pass | 12,794 | 12,062 | -6% | 1 | 1 | 0% | 2,249 | 5,239 | +133% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 23 cases were attempted. The headline lift of +43 percentage points is the difference between those two pass rates over the 23 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.