I'm a big believer in automated testing
I'm a big believer in automated testing. But I typically write tests *after* writing the code.
Why?
Because my first design is rarely the final design.
I iterate rapidly. I throw all sorts of ideas at the wall. I experiment, rename, and move things around.
When the API settles and I'm happy, I write my tests.