- 1. Welcome
- 2. Better assertions
- 2.1. The built-in toolkit
- 2.2. googletest
- 2.3. Basic matchers
- 2.4. Option and Result matchers
- 2.5. Enums
- 2.6. Collections
- 2.7. Custom matchers
- 2.8. expect_that!
- 3. Snapshot testing
- 3.1. insta
- 3.2. Storing snapshots
- 3.3. Redactions
- 3.4. Outro
- 4. Mocks
- 4.1. Refactor to an interface
- 4.2. mockall
- 4.3. Call sequences
- 4.4. Checkpoints
- 4.5. Mocking foreign traits
- 4.6. Outro
- 5. The testing system
- 6. Filesystem isolation
- 6.1. Implicit or explicit?
- 6.2. Temporary files
- 6.3. Path coupling
- 6.4. Outro
- 7. Database isolation
- 7.1. sqlx::test
- 8. HTTP mocking
- 8.1. wiremock
- 8.2. Matchers
- 8.3. Checkpoints
- 8.4. Outro
- 9. Macros
- 9.1. Your first macro
- 9.2. Parsing tokens
- 9.3. Parsing arguments
- 9.4. Outro
- 10. Test harnesses
- 10.1. Custom harnesses
- 10.2. libtest_mimic
- 10.3. Outro
- 11. Capstone