Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Enforces TDD (Red-Green-Refactor) for Rust development. Auto-triggers on implementation, testing, refactoring, and bug fixing tasks. Provides Rust-idiomatic testing patterns with anyhow/thiserror, cfg(test), and Arrange-Act-Assert workflow.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 65% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -36% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 2% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 121% | 0% |
Cycle: RED (test fails) -> GREEN (minimum to pass) -> REFACTOR (cleanup, cargo test)
1. Write test in #[cfg(test)] mod tests of the SAME file
2. cargo test MODULE::tests::test_name -- must FAIL (red)
3. Implement the minimum in the function
4. cargo test MODULE::tests::test_name -- must PASS (green)
5. Refactor if needed, re-run cargo test (still green)
6. cargo fmt && cargo clippy --all-targets && cargo test (final gate)Never skip step 2. If the test passes immediately, it tests nothing.
| Pattern | Usage | When | |---------|-------|------| | Arrange-Act-Assert | Base structure for every test | Always | | assert_eq! / assert! | Direct comparison / booleans | Deterministic values | | assert!(result.is_err()) | Error path testing | Invalid inputs | | Result<()> return type | Tests with ? operator | Fallible functions | | #[should_panic] | Expected panic | Invariants, preconditions | | tempfile::NamedTempFile | File/I/O tests | Filesystem-dependent code |
| Code Type | Test Pattern | Example | |-----------|-------------|---------| | Pure function (str -> str) | Input literal -> assert output | assert_eq!(truncate("hello", 3), "...") | | Parsing/filtering | Raw string -> filter -> contains/not-contains | assert!(filter(raw).contains("expected")) | | Validation/security | Boundary inputs -> assert bool | assert!(!is_valid("../etc/passwd")) | | Error handling | Bad input -> is_err() | assert!(parse("garbage").is_err()) | | Struct/enum roundtrip | Construct -> serialize -> deserialize -> eq | assert_eq!(from_str(to_str(x)), x) |
test_{function}_{scenario}
test_{function}_{input_type}Examples: test_truncate_edge_case, test_parse_invalid_input, test_filter_empty_string
Command::new() -> test the parser, not the executionstd::process::exit() -> refactor to Result first, then test the Resultbashcargo fmt --all --check cargo clippy --all-targets cargo test
All 3 must pass. No exceptions. No #[allow(...)] without documented justification.
Other measured skills in the registry, with their headline benchmark lift.