To date, the biggest conceptual part of test driven development and its unit testing is how do you do this for the UI tier? It’s clearer for me in the data and business tiers due to the use of mock objects and Nunit. But, how should this be done in the UI tier? I found reading through the two following MSDN articles help out considerably;
http://msdn.microsoft.com/msdnmag/issues/05/08/UIPApplicationBlock/
So why pay Microsoft when you can get the tools for free? Currently, I am team lead for a very talented group of people. One of the things the team has agreed to do is embrace eXtreme Programming (XP) and Test Driven Development (TDD). We have been making awesome progress on all fronts. Every day we deepen our understanding of XP and we have solidified our build, test and deploy platform. Having a TDD approach will assist us to become more nimble in meeting our customer needs while ensuring we have a quality product through time. Another interesting thing we are doing is using Visual Studio 2005 (VS2005) and .NET 2.0 for our development platform. Yes, they are in beta, yet we are wanting to embrace the .NET platform for the next major release of our server product so we figured we would jump right into the latest toolset. What we have found is that the OpenSource tools for our TDD work very well in combination with VS2005. We are using; MSBuild, Nant, Nunit, Ndoc, Ncover and CruiseControl, and we hope to integrate FxCop soon. Having all these tools working together will allow us to focus further on the business needs and not the technology implementation (and if our refactoring efforts break anything…) To get better insight into using these tools I do suggest you look at their respective sites and do some further reading, in particular; http://www.codeproject.com/dotnet/tdd_in_dotnet.asp this is an excellent introduction in using Nunit and Mock objects. So, now I get back to the title of this entry, why spend the additional money on the Microsoft Team Services (which provide you the TDD tools) when you can get it for free through OpenSource?