Testing the untestable - patterns and use cases analysis
summary
Shows patterns that make hard-to-test code practical: prefer leave fast integration tests under 15s when they avoid duplication, replace heavy framework reloads to cut 12‑minute suites to minutes, and prefer fakes and in‑memory adapters instead of mocking third‑party APIs so tests are stable and reusable. Demonstrates reusing the same unit tests as integration or API/GUI tests, a simple timeflow test clock to simulate time and sampling/listening techniques for async assertions. Includes concrete numbers, refactoring steps and runnable examples.
AI-written summary · about
chapters (13)
- 0:00Introduction
- 2:17Unit vs integration test gray area
- 4:05Testing with external fast systems
- 7:46Speeding up slow integration tests
- 9:54Reusing internal APIs with reflection
- 12:03Testing external libraries and services
- 17:05Creating fakes and stubs
- 20:56Deploying apps with fakes to production
- 23:06Reusing tests across test levels
- 28:54Time-dependent code testing
- 35:41Testing async code with sampling
- 39:59Cohesion and single responsibility in testing
- 42:50Testing strategy as architecture decision
related talks
46mTesting the untestable - patterns and use cases analysis
43mUnselfish Testing
45mTesting the untestable PART II – patterns, use cases and practices
26mTesting the Tricky Stuff
57mAdvanced Testing Techniques: Tips from the trenches
01h 19mYou Can't Test This? Hammertime!
37mClean Test Code
29m"Testing. Why so serious?"
