Stateful Testing Systems
Most test suites assume a fresh, disposable world every time they run. Spin up a database, seed some fixtures, run the assertions, throw it all away. That model works beautifully right up until the thing you need to test doesn’t fit inside a single process lifetime.
Take a system that sends a real verification email as part of signing up, and enforces a real rate limit on how many signups can happen per hour. There is no bypass for either of those, because bypassing them would mean not testing the real thing. You have to actually wait for the email to arrive, and you have to actually respect the rate limit. Neither of those fits into “run a function, assert on the result, tear everything down.”
2026-08-06