I started off very pure and true to the noble principles of TDD and Extreme OOP. Actually I did decided 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 model
- Marcusoft.SprintPlannerHelper.Service - any services need for the model, such as database access and so on.
- Marcusoft.SprintPlannerHelper.Web - the ASP.NET MVC Web Application.
- Marcusoft.SprintPlannerHelper.Test - the unit test of the application.
Then I removed all the Class1.cs from all the projects that default 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 h /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 test for the controllers created for my 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…