The Anatomy of Good Unit Testing

I think of unit tests as an extension to my code. A thorough testing process offers peace of mind that when refactoring the code or making performance improvements, the units still function as expected. It can also find bugs and edge cases and avoid regressions during refactoring.

I come from a.NET / C# background and have compiled this collection of thoughts and tidbits that I find useful when writing tests.