Unit testing and TDD

July 28, 2003 at 5:41 pm

Back in March, I wrote a column entitled “Unit
Testing and Test-First Development
“.

I’ve been playing around with unit testing a bit more since then, and have a few tentative
conclusions.

  1. Unit testing is, overall, a “Good
    Thing
  2. Unit testing works well for class libraries, especially ones that act fairly statically.
    If you create one of these, you should be writing unit tests
  3. Unit testing is hard with graphical applications and/or dynamic applications. I have
    an app that I’m writing that uses multiple threads, fires events asynchronously, and
    is peer to peer. There aren’t any unit tests for that section yet.
  4. Unit testing is great for tricky code that you wrote but weren’t sure that it really
    worked. I updated my Regex Workbench a while back,
    and in the process wrote unit tests for all the code that I have that interprets regular
    expressions to english. I found one feature I hadn’t implemented, and two that were
    implemented incorrectly. I’m now much more confident that it works.

I’e also been playing with Test-driven development. I’m not sure about it yet, though
it is true that if you write the tests up front, you’re much more likely to write
them.