Antipattern #2 — Sharing state between testsA shared state between tests means pain while understanding and debugging them.Oct 21Oct 21
Published inDev GeniusSpeaking a Ubiquitous LanguageCan you quickly grasp a codebase's goals? Do technical details distract you when changing a business rule? Do you understand the value of…Jun 181Jun 181
Published inDev GeniusAutomated testing in C — Part IIAcceptance testing means testing software in a user-centric way (roughly the same as end-to-end testing). I’ll present a way to test a CLI…May 21May 21
Published inDev GeniusAutomated testing in C — Part II’m a fan of automated testing but usually do it in higher-level languages like Kotlin, Ruby, or Python. I’ll prove that we can do it in C…May 171May 171
Published inCodeXCoding backwardCoding backward means working backward applied to coding — we start from the goal (what’s known) and work backward (the unknown).Apr 31Apr 31
Published inCodeXGuiding Principles for RefactoringRefactoring is an essential activity for the codebase’s health, but there are some guidelines to follow so we can get the best out of it.Mar 242Mar 242
Published inCodeXAvoiding mocks — Part IIWe covered the dogfooding technique and how to make our tests more black-boxed. How do we deal with dependencies?Jan 5Jan 5
Published inCodeXAvoiding mocks — Part IMocks often result in brittle tests that simulate unrealistic scenarios, replacing too much of the actual system and providing a false…Jan 33Jan 33