Name every phase:
,
,
,
. Finish with:
,
,
(none or remaining edge).
Completion: every requested behavior has a passing check, the check ran in the repo's normal command, and any untestable edge is reported.
Prefer the highest-level test that proves the behaviour without brittle setup. HTTP paths: request/response tests. Service/repository: integration tests when practical. Go: table-driven with
if project uses it. Keep mocks at boundaries. Do not mock what you can run cheaply. One
-style self-check suffices for tiny cases.