/test-review - Improve Test Assertions
Usage
code
/test-review # Review all tests /test-review LoginControllerTest.java # Specific test file
Workflow
- •Load
.claude/agents/test-review-agent.md - •Find tests using
contains(),isNotNull(),isNotEmpty()where exact value is known - •Verify all response fields have strict assertions (read DTO, check every field)
- •Replace loose assertions with exact assertions on parsed fields
- •Run tests to verify behavior unchanged
Anti-Patterns to Fix
contains() on structured data:
java
// BAD: assertThat(setCookie).contains("SESSION=");
// GOOD: assertThat(cookie.getName()).as("cookie name").isEqualTo("SESSION");
isNotNull() when value is known:
java
// BAD: assertThat(response.getExpiresAt()).isNotNull(); // GOOD: assertThat(response.getExpiresAt()).isEqualTo(expected);
isNotEmpty() when content is known:
java
// BAD: assertThat(response.getPermissions()).isNotEmpty();
// GOOD: assertThat(response.getRoles()).containsExactly("ADMIN", "MEMBER");
Rules
- •Parse before assert — never assert on raw strings for structured data
- •One field per assertion — easier to debug
- •Use
.as()— describe what you're validating