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…