Swift Testing Code Review Quick Reference Issue Type Reference
expect vs #require, expression capture, error testing
references/expect-macro.md @Test with arguments, traits, zip() pitfalls references/parameterized.md confirmation, async sequences, completion handlers references/async-testing.md @Suite, tags, parallel execution, .serialized references/organization.md Review Checklist Expressions embedded directly in
expect
(not pre-computed booleans)
require
used only for preconditions,
expect
for assertions Error tests check specific types (not generic (any Error).self ) Parameterized tests with pairs use zip() (not Cartesian product) No logic mirroring implementation in parameterized expected values Async sequences tested with confirmation(expectedCount:) Completion handlers use withCheckedContinuation , not confirmation .serialized applied only where necessary (shared resources) Sibling serialized suites nested under parent if mutually exclusive No assumption of state persistence between @Test functions Disabled tests have explanations and bug links When to Load References Reviewing #expect or #require usage -> expect-macro.md Reviewing @Test with arguments or traits -> parameterized.md Reviewing confirmation or async testing -> async-testing.md Reviewing @Suite or test organization -> organization.md Review Questions Could pre-computed booleans in
expect
lose diagnostic context? Is
require
stopping tests prematurely instead of revealing all failures? Are multi-argument parameterized tests creating accidental Cartesian products? Could zip() silently drop test cases due to unequal array lengths? Are completion handlers incorrectly tested with confirmation ?