Pragmatic Unit Testing in C# with NUnit, Second Edition

By Andy Hunt and Dave Thomas with Matt Hargett

This book takes the reader through the reasons why unit testing is a good idea, shows how to get started writing unit tests in C# with NUnit, and then goes deeper into the subject with chapters on aspects of unit testing like boundary conditions, mock objects, design issues, and gotchas.  This is a great first book on unit testing.  There is also a version available aimed at Java/JUnit. Reviewed by Ron Pihlgren