From praxis
Integration test philosophy — test observable behavior, fixture composition, canary markers for library internals.
How this skill is triggered — by the user, by Claude, or both
Slash command
/praxis:testing-patternsWhen to use
Writing tests, reviewing test code, or deciding between unit and integration tests.
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Integration tests must verify **observable behavior through endpoints**, not implementation details.
Integration tests must verify observable behavior through endpoints, not implementation details.
Good integration tests:
Bad integration tests:
If a test starts with boilerplate setup (register a user, log in, configure a setting), that belongs in a fixture. Test bodies should stay focused on what they're actually testing.
Build fixture stacks: user -> logged_in_user -> admin_user. Each level adds one concern. Tests request the level they need.
When code depends on a library's private or poorly-documented internals, add a canary test that asserts the internal's shape directly — don't rewrite production code to avoid the dependency when doing so would cost real accuracy or capability.
The canary turns an upstream rename or shape change into a loud test failure instead of a silent runtime bug.
Canary practices:
test_library_rate_limit_contract), since it'll likely be read by whoever just bumped a depnpx claudepluginhub jartan-llc/grimoire --plugin praxisGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.