Så er beslutningen taget: Jeg er hermed gået i gang med et projekt, der fra starten skal være Test-first. Efter at have flirtet med TDD gennem længere tid, har jeg nu besluttet, at dette projekt skal gøres 'rigtigt' fra starten. Jeg håber der med at få et resultat, der på mange måder er bedre, og mere modstandsdygtigt over for løbende ændringer, end mine tidligere projekter.
Projektet går i sin enkelthed ud på at opbygge en Windows Service, der skal virke som en Event Server. På serveren skal det være muligt, at hooke op forskellige triggere, som så skal eksekverer forskellige tasks, når disse triggere opnår en bestemt status.
Det lyder måske lidt abstrakt, men forestil dig, at du sidder på en fabrik med din Pc, og at du ønsker at overvåge forskellige maskiner. Du kan så trække kabler ud af f.eks. din seriel port, og hen til maskinerne, og på den måde få signal om at der er indtrådt én eller anden tilstand. Det kunne være, at maskinen var gået i stå. Her er det serveren kommer ind i billedet: Her kan man så liste alle sine interessante forbindelser op, og evt. logge når der indtræffer én eller anden tilstand.
Jeg regner med, at alt dette kommer til at fremstå meget mere klart, så snart jeg kommer lidt længere frem i projektet.
Men altså: Test først udvikling, og jeg starter med det jeg har valgt at kalde Trigger klassen.
[Test]
public void TriggerShouldHaveState()
{
Trigger trigger = new Trigger();
trigger.State = TriggerState.On;
Assert.That(trigger.State == TriggerState.On, "Trigger skal have status");
}
Så langt så godt: Intet virker, og mit projekt kan ikke engang kompilerer.... men jeg har det godt… jeg laver TDD for første gang, og det føles godt – rigtigt godt…
Carry on testing…