Testing on the Toilet

A current archive of Testing on the Toilet posts, with links to each original article and its printer-friendly handout.

PostPublishedPrint
Prefactoring: Clear the Way for Your New Feature21 Jul 2026Link
Choosing Values for Robust Tests04 Jun 2026Link
Code Review Responses: Add Context When It Counts12 May 2026Link
Construct with Collaborators, Call with Work05 May 2026Link
One Map Key, One Lookup29 Apr 2026Link
The Way of TDD10 Mar 2026Link
Set Safe Defaults for Flags03 Mar 2026Link
Simplify Your Code: Functional Core, Imperative Shell20 Oct 2025Link
Sort Lines in Source Code15 Sep 2025Link
Arrange Your Code to Communicate Data Flow07 Jan 2025Link
SMURF: Beyond the Test Pyramid15 Oct 2024Link
Write Change-Resilient Code With Domain Objects04 Sep 2024Link
Less Is More: Principles for Simple Comments21 Aug 2024Link
In Praise of Small Pull Requests16 Jul 2024Link
Don't DRY Your Code Prematurely28 May 2024Link
Avoid the Long Parameter List20 May 2024Link
Test Failures Should Be Actionable06 May 2024Link
isBooleanTooLongAndComplex25 Apr 2024Link
How I Learned To Stop Writing Brittle Tests and Love Expressive APIs18 Apr 2024Link
Prefer Narrow Assertions in Unit Tests04 Apr 2024Link
What’s in a Name?26 Mar 2024Link
Increase Test Fidelity By Avoiding Mocks27 Feb 2024Link
Let Code Speak for Itself12 Dec 2023Link
Exceptional Exception Handling05 Dec 2023Link
Clean Up Code Cruft28 Nov 2023Link
Write Clean Code to Reduce Cognitive Load06 Nov 2023Link
Include Only Relevant Details In Tests30 Oct 2023Link
Simplify Your Control Flows24 Oct 2023Link
Improve Readability With Positive Booleans17 Oct 2023Link
Shell Scripts: Stay Small & Simple11 Oct 2023Link
The Secret to Great Code Reviews: Respect Reviewers' Comments04 Oct 2023Link
Communicate Design Tradeoffs Visually21 Sep 2023Link
Else Nuances13 Sep 2023Link
Use Abstraction to Improve Function Readability06 Sep 2023Link
Better Feedback Makes for Faster Reviews22 Aug 2023Link
Code Health: Now You're Thinking With Functions07 Feb 2022Link
Testing on the Toilet: Separation of Concerns? That's a Wrap!09 Dec 2020Link
Testing on the Toilet: Testing UI Logic? Follow the User!26 Oct 2020Link
Testing on the Toilet: Avoid Hardcoding Values for Better Libraries19 Aug 2020Link
Testing on the Toilet: Don’t Mock Types You Don’t Own16 Jul 2020Link
Testing on the Toilet: Tests Too DRY? Make Them DAMP!03 Dec 2019Link
Code Health: Respectful Reviews == Useful Reviews06 Nov 2019Link
Testing on the Toilet: Exercise Service Call Contracts in Tests27 Nov 2018Link
Code Health: Make Interfaces Hard to Misuse25 Jul 2018Link
Testing on the Toilet: Only Verify Relevant Method Arguments26 Jun 2018Link
Testing on the Toilet: Keep Tests Focused11 Jun 2018Link
Code Health: Understanding Code In Review01 May 2018Link
Testing on the Toilet: Cleanly Create Test Data20 Feb 2018Link
Testing on the Toilet: Only Verify State-Changing Method Calls11 Dec 2017Link
Code Health: Obsessed With Primitives?13 Nov 2017Link
Code Health: IdentifierNamingPostForWorldWideWebBlog23 Oct 2017Link
Code Health: Providing Context with Commit Messages and Bug Reports11 Sep 2017Link
Code Health: Eliminate YAGNI Smells14 Aug 2017Link
Code Health: To Comment or Not to Comment?17 Jul 2017Link
Code Health: Too Many Comments on Your Code Reviews?19 Jun 2017Link
Code Health: Reduce Nesting, Reduce Complexity05 Jun 2017Link
Testing on the Toilet: Keep Cause and Effect Clear31 Jan 2017Link
Testing on the Toilet: What Makes a Good End-to-End Test?21 Sep 2016Link
Testing on the Toilet: Change-Detector Tests Considered Harmful27 Jan 2015Link
Testing on the Toilet: Prefer Testing Public APIs Over Implementation-Detail Classes14 Jan 2015Link
Testing on the Toilet: Truth: a fluent assertion framework19 Dec 2014Link
Testing on the Toilet: Writing Descriptive Test Names16 Oct 2014Link
Testing on the Toilet: Web Testing Made Easier: Debug IDs12 Aug 2014Link
Testing on the Toilet: Don't Put Logic in Tests31 Jul 2014Link
Testing on the Toilet: Risk-Driven Testing30 May 2014Link
Testing on the Toilet: Effective Testing07 May 2014Link
Testing on the Toilet: Test Behaviors, Not Methods14 Apr 2014Link
Testing on the Toilet: What Makes a Good Test?18 Mar 2014Link
Testing on the Toilet: Test Behavior, Not Implementation05 Aug 2013Link
Testing on the Toilet: Know Your Test Doubles18 Jul 2013Link
Testing on the Toilet: Fake Your Way to Better Tests28 Jun 2013Link
Testing on the Toilet: Don’t Overuse Mocks28 May 2013Link