Blog Home
tott All Tags
Now You're Thinking With Functions 2022-02-07 Separation of Concerns? That's a Wrap! 2020-12-09 Avoid Hardcoding Values for Better Libraries 2020-08-19 Tests Too DRY? Make Them DAMP! 2019-12-03 Exercise Service Call Contracts in Tests 2018-11-27 Make Interfaces Hard to Misuse 2018-07-25 Only Verify Relevant Method Arguments 2018-06-26 Keep Tests Focused 2018-06-11 Understanding Code in Review 2018-05-01 Cleanly Create Test Data 2018-02-20 Only Expect State-Changing Method Calls 2017-12-11 Obsessed With Primitives? 2017-11-14 IdentifierNamingPostForWorldWideWebBlog 2017-10-23 To Comment or Not to Comment 2017-07-17 Too Many Comments on Your Code Reviews? 2017-06-19 Reduce Nesting, Reduce Complexity 2017-06-15 Keep Cause and Effect Clear 2017-01-31 What Makes a Good End-to-End Test? 2016-09-21 Change-Detector Tests Considered Harmful 2015-01-27 Prefer Testing Public APIs Over Implementation-Detail Classes 2015-01-14 Writing Descriptive Test Names 2014-10-16 Don't Put Logic in Tests 2014-07-31 Risk-Driven Testing 2014-05-30 Effective Testing 2014-05-07 Test Behaviors, Not Methods 2014-04-14 What Makes a Good Test? 2014-03-18 Test Behavior, Not Implementation 2013-08-05 Know Your Test Doubles 2013-07-18 Fake Your Way To Better Tests 2013-06-28 Don't Overuse Mocks 2013-05-28 Testing State vs. Testing Interactions 2013-03-22 Code coverage goal: 80% and no less! 2010-07-20 Data Driven Traps! 2008-09-04 Sleeping != Synchronization 2008-08-21 Defeat "Static Cling" 2008-06-26 Testable Contracts Make Exceptional Neighbors 2008-05-28 Understanding Your Coverage Data 2008-03-06 Too Many Tests 2008-02-21 Avoiding Friend Twister in C++ 2007-10-30 Refactoring Tests in the Red 2007-04-26