I started off very pure and true to the noble principles of TDD and Extreme OOP. Actually, I did decide on a few naming conventions first: the name of the product is Sprint Planner Helper and it will reside in the namespace Marcusoft.SprintPlannerHelper. I also created four projects like this (idea stolen from ASP.NET MVC Storefront):
Marcusoft.SprintPlannerHelper.Models- my domain modelMarcusoft.SprintPlannerHelper.Service- any services needed for the model, such as database access and so onMarcusoft.SprintPlannerHelper.Web- the ASP.NET MVC Web ApplicationMarcusoft.SprintPlannerHelper.Test- the unit tests of the application
Then I removed all the Class1.cs from all the projects that defaulted them to me. At this point, I realized that I was missing Visual Studio 2008 Power Commands and Resharper at the computer I was using. Had to download them - you can live without them. The 1 hour/day is burning up fast in the beginning.
Finally, I could review my product backlog and create my first test: aNewlyCreatedProductOwnerHasEmptyName. This is my first time doing pure TDD, and I must say it was quite exciting. It didn’t compile, of course. So I created a class in my Model-project called ProductOwner. At first, I thought I would have a hard time getting the test to fail, but it did (:D). The name property is initialized to null. I implemented a constructor that took care of that - and YEAH, my first test.
I was quite surprised to find 27 other tests in my solution. Those were tests for the controllers created for me by the ASP.NET MVC project template. I ran them all - they worked, but I didn’t check them out for now.
My hour is up - great progress today. We’re off to a flying start with one TDD iteration (RED-GREEN-REFACTOR) done…