Vi ville gerne gøre noget for de, som ikke kunne deltage i november mødet pga. plads begrænsningen og vi besluttede derfor at lave et bonus møde i december. Heldigvis skulle det vise sig at være ganske nemt at finde både en taler og et sted at være på næsten ingen tid. Således mødte omkring 40 personer frem for at deltage i Unit Testing – Tools and Techniques from the Trenches, som blev holdt af min kollega Daniel Gonzalez Garcia fra Vertica. Daniel er fra Spanien og derfor var mødet hos Front-data lidt specielt, idet det blev afholdt på engelsk. Ganske som forventet havde det ingen indflydelse på deltagernes spørge-iver :)
Daniel kom godt rundt i unit testing og startede ud med at definerede mange af de begreber og mønstre, som ligger til grund for unit testing. En forfriskende tilgang til præserntationen. Han fulgte op med at vise ikke bare ét unit testing framework, men tre: NUnit – den originale, xUnit – den udfordrende og MSTest – den kedelige. Der var ingen tvivl om hans præference og efter gennemgangen kan man ikke være andet end enig i det faktum at både NUnit og xUnit har mere at byde på end MSTest. Særligt performance var en af hans kæpheste med MSTest, også featuresættet lader en del tilbage at ønske for MSTest.
Med nogle af de grundlæggende værktøjer på plads, fortsatte han ud i de mere avancerede emner som mocking og test doubles med tilhørende værktøjer. Også her gik han metodisk til værks og præsenterede de forskellige typer doubles, som findes: Fake, Spy, Stub, Mock, osv.. Herefter fik vi en smag på et par af de forskellige mocking frameworks, som findes derude: RhinoMocks og Moq. Daniels egen favorit er RhinoMocks, fordi den understøtter både state- og behavior testing, hvor Moq kun understøtter state testing.
Alt i alt et lækkert indlæg, hvor deltagerne havde vidt forskellige forventninger til indholdet. Daniel kom godt rundt og fik besvaret en lang række spørgsmål både under og efter sin præsentation. Vi forventer i øvrigt at følge op på mødet med en code camp, hvor du får mulighed for at få fingrene beskidte med unit testing og nogle af de teknikker og værktøjer, som Daniel dækkede i sit indlæg.
Vi diskuterede i øvrigt, hvad man kan gøre, hvis man har en stor kodebase, som ikke har nogen test suite og ikke er designet til unit test. Bogen “Working Effectively with Legacy Code” af Michael Feathers blev fremhævet som en god kilde, ikke blot til den nævnte problemstilling, men som input til den generel unit testing.