I’m hosting Chris Simon on a #JetBrains#livestream to discuss #TDD, #DDD, and #csharp. Not to be confused with D&D, which is about wizards, dragons, and dungeon masters… wait it's pretty similar.
We just shipped v2 Core Framework 2.8.0, Analyzers 1.13.0, and Visual Studio adapter 2.8.0. The primary purpose of this release is a new parallelism algorithm that should make test timing more reliable, and make thread deadlocks in your tests less likely.
One top misconception about #TDD is that you should refactor the tests as you go. This means that you can delete some too. It’s like building an arch and then knocking out the supporting structure. The supports helped along the way but are no longer needed. It’s not true that “the best code is the code that was never written”. It is true that the best code modification is to delete it. Tests ensure that nothing unexpected happens once you have deleted that code. #programming
There are some really great coders who don’t get #TDD and that’s OK but I wish they would not use that misunderstanding to just proclaim that it is useless. On the other hand we need to find a way to prove the usefulness without just saying that “you are holding it wrong”. #programming
Why? Because 3 separate times, I predicted how the test should fail, and it failed differently! They failed in the unexpected way because I had either written the test setup incorrectly, or misunderstood a library method¹.
Had I just looked out for a failing test, I would have started writing code to make it pass, and been disappointed that it didn't pass when I was done.
--
¹ Turns out Java's String.indent(4) normalizes line endings, meaning it will add a line ending to the last line, even if it didn't have one before! Surprise!
@jitterted I have always thought the circle diagram for #TDD sent the wrong message to new practitioners. Refactoring should always start and end in green. If you refactor and things go red you’ve done something else other than refactoring.
We just shipped v2 Core Framework 2.7.1, Analyzers 1.12.0, and Visual Studio adapter 2.5.8. This includes a few new assertion overloads, four new #Roslyn analyzers (and two new suppressors), and a handful of bug fixes.
If you were thinking of ordering your own copy of JitterTed's TDD Game, I recommend ordering soon, as I'm running low on inventory (and won't get more for another month or so).
Get your copy (or multiple copies—saves on shipping) today at https://tdd.cards
And well … It works good so far. And so many more things now make sense and work, e.g. TDD. I thought TDD doesn't make sense, except for some cases. But now with a different point of view to how to create and structure software … it now works. I could develop the current project fully #TDD.
I hate #daylightsavingstime. I hate it so much. The week where #DST changes occur lets me find the weirdest of higgs-bugson and mandelbugs in #GNOMECalendar while doing #QA.
At least the majority of those issues have already been durably fixed for #GNOME 46 by @danigm's fantastic #TDD (unit-tests-backed) bufixes 😌