Testing & QA
What actually makes a test worth having — the AAA pattern, test doubles used correctly instead of over-mocked, the pyramid's real shape, and the CI habits that keep a suite fast and trusted instead of ignored.
18 lessons
Beginner
Why we test — the cost of a bug found late vs. found nowBeginner3 min read·Not startedUnit tests — what 'unit' actually meansBeginner3 min read·Not startedArrange, Act, Assert — the shape of every good testBeginner3 min read·Not startedAssertions and matchers — what a good assertion actually checksBeginner3 min read·Not started
Intermediate
Test doubles: mocks, stubs, fakes, and spiesIntermediate4 min read·Not startedOver-mocking — when a test stops testing your codeIntermediate3 min read·Not startedIntegration tests — what they catch that unit tests can'tIntermediate3 min read·Not startedTest coverage — what percentage-covered actually tells you (and doesn't)Intermediate3 min read·Not startedFlaky tests — root causes and fixesIntermediate4 min read·Not startedTesting async code — promises, timers, and race conditions in testsIntermediate3 min read·Not startedSnapshot testing — what it's good for and its real failure modeIntermediate3 min read·Not startedTesting React components — render, query, interact, assertIntermediate3 min read·Not started
Advanced
End-to-end tests — a real browser, a real backend, and why they're slowAdvanced3 min read·Not startedThe test pyramid — why it exists and when to break itAdvanced3 min read·Not startedTest-driven development — red, green, refactorAdvanced3 min read·Not startedTesting APIs: fixtures, test databases, and contract testsAdvanced3 min read·Not startedCI test suites: parallelization, flaky-test quarantine, and fast feedbackAdvanced3 min read·Not startedReal testing bugs and anti-patterns — a field referenceAdvanced4 min read·Not started