I have been a fan of Nunit for a while now but recently I have noticed that I never open my UI project on my application. If I add new functionality I write a test case for it to ensure that it works. When I change something internally I run Nunit. I guess I am just amazed at how smoothly it has transitioned to this since I hav added a wack load of test coverage to my project.
One of the cool things just happened now and inspired me to write this post. I am refactoring some redundant tables and stored procs out of my database and I just renamed a bunch of methods and ran my tests expecting them all to fail. To my supprise one did not as I left the stored proc in the database. So that caught one mistake. I then refactored my code to use the new proc and expected them all to pass but again one failed (I forgot that one object has 'special needs' and needs to be inserted differently). This process seemed to repeat over and over with me catching one little thing with my tests. By the end of this refactoring I caught 5-6 items that might have been missed in my hands on testing but caught by the user resulting in 5-6 bug reports.
I know that this is kind of a dumb post for those of you that do unit testing / tdd but for those that don't I hope that it inspires you to start looking towards a unit testing framework for your applications.