Chess TDD 41: Finishing up White Pawn Movement
This post was the first of another three that I recorded together. I wanted to tie up some loose ends and move on to implementing pawn movement for black, but I just wound up tying up loose ends.
On a meta note, I’m going on vacation out of the country for a week, so I may or may not be in a position to log in and push posts live this week. It may be a light week for DaedTech posts.
What I accomplish in this clip:
- Got IsNonCaptureAllowed working properly
Here are some lessons to take away:
- There’s nuance to when to drive your design/development with acceptance tests versus unit tests. TDD is generally good when you want to iterate quickly to get a narrow implementation right.
- There’s no harm in extracting out a method from a test so that you can save yourself typing in the next test you’re writing. (As long as you’re green while you do it)
- It’s not relevant to my series, per se, but it’s worth knowing what characterization tests are.
- Look out for the sunk cost fallacy with your own code. The fact that you’ve pulled out and spent time creating a method doesn’t mean that the method is actually beneficial or valuable.
- Beware of iceberg classes.
The first two tests of IsNonCaptureAllowed are identical (passing in (3,3) to the helper method). The second one – Returns_False_For_RightOne_UpTwo should pass (3, 4).
Yikes! Good catch, thanks. I’ll have to fix when I get back from my trip.