Unit Testing Anti-Pattern: Code Matching
Sometimes, tests imitate code, and not in a good way. Here’s our tested code: public String encode(String word) { String result = word + word.length(); return result; } And here’s our test: @Test public void howItsDone() { Encoder enc = Read more…
Unit Testing Anti-Pattern: Misleading Tests
You’re testing the right thing, and the test passes, and everything is cool. Or is it? Check out this test: @Test public void encodeString_sizeAtEnd() { Encoder enc = new Encoder(); String result = enc.encode(“hello”); assertEquals(“hello5”, result); } This test looks Read more…
Unit Tests Anti-patterns: TDD without refactoring
Anti-patterns are patterns with negative consequences. In this series I’m going to tackle those patterns, explain what they signify in terms of risks, and what to do instead. Let’s look at a pattern common to people who start out on Read more…
TDD In Real Life – Part 2
Last time we’ve started talking about how to approach TDD in real, complex systems. While plain vanilla TDD assumes nothing about the world around our component, in real life, there are constraints we need to relate to. Where we stopped, Read more…
TDD In Real Life – Part 1
TDD comes from the world of unit testing. It’s optimized for small pieces of code; small increments of functionality. BDD takes the test-first approach, adds functional and user semantics and tries to follow the same formula for the whole software. Read more…
New Version of “Everyday Unit Testing”
That’s right! It’s been a while, but lots of content going into the new version, which you can download right now. What’s added? Two new chapters: Testing strategy – how to think about testing (and unit testing) a feature. TDD Read more…