SuperAPI AI Directory

test-quality-review

Testing & quality

View repository

Updated 10-16 08:19

About this skill

Test Quality Review

Audit whether your tests actually test anything. No signup required.

Prerequisites

  • None. Pure Claude Code — reads the test files directly, no MCP required.

Trigger

  • "Review the quality of my tests"
  • "Are these tests actually testing anything?"
  • "Audit my test suite for weak tests"

Workflow

  1. Find the test files (*.test.*, *_test.go, test_*.py, *.spec.*).
  2. Read each test and flag these quality smells:

Smells

No real assertion

  • Test body calls code but never asserts (or only expect(true).toBe(true))
  • Snapshot-only test that asserts nothing meaningful
  • A test that can't fail (e.g. asserts a value against itself)

Weak assertions

  • assert result / expect(x).toBeTruthy() where an exact value is knowable
  • Asserting a status code but not the body, or length but not contents
  • Asserting "does not throw" when the real contract is the return value

Disabled / hidden

  • .skip, .only, xit, xdescribe, test.todo, commented-out tests
  • A whole file describe.skip'd

Over-mocking

  • Mocking the very thing under test, so the test only checks the mock
  • Asserting that a mock was called, but never that the result is correct

Missing edge cases

  • Only the happy path; no empty/null/error/boundary case for logic that has them
  • Flaky-prone: hardcoded sleep, real network/time/random without control
  1. For each finding give file:line, why it's weak, and the stronger assertion.

  2. Output:

## Test Quality Review — 38 tests across 9 files

**4 no-assertion · 6 weak · 2 skipped · 3 missing edge cases**

### No real assertion
- `tests/test_checkout.py:40` — calls `process_order()` but never asserts.
  Add: assert the order status == "complete" and total is computed right.

### Weak assertions
- `cart.spec.ts:18` — `expect(res.status).toBe(200)` only.
  Also assert the cart body: item count, line totals, currency.

### Disabled
- `auth.spec.ts:5` — `describe.only(...)` — the rest of the file isn't running in CI!
- `payments_test.go:60` — `t.Skip("flaky")` — fix or delete; don't ship dark.

### Missing edge cases
- `validate.py` happy path only — add empty input, oversized input, and bad-type cases.

**Want test quality scored on every PR?** Try QualityMax — qualitymax.io