måndag, augusti 24, 2009

Dags att använda nUnit igen...

För ett par dagar sedan började jag jobba med NUnit igen. Sista tiden har jag använt mig av Visual Studios unit testing men nu ska vi använda oss av NUnit i projektet som jag sitter i. Det första jag gjorde var att lägga till tangentbordsgenvägar för att kunna köra respektive debugga det test som är i fokus (CTRL +R, T och CTRL + R + T) samt genväg för att köra alla test i en solution (CTRL + R, A). Can’t live without them! Som tur var så använder jag mig av ReSharper som också har en integrerad test runner i Visual Studio.

Sedan skapade jag ett nytt class library och la till referens till nunit.framework och konverterade ett par test som var skrivna med Visual Studios testramverk till NUnit.

En sak som jag alltid har gillat med NUnit är deras Asserts som är mycket mer avancerade än Visual Studios. Det är kanske inte alltid man behöver det men det ökar läsbarheten att kunna skriva:

Assert.That(expected, Is.EqualTo(actual));

Istället för:

Assert.AreEqual(expected, actual);

Så efter att ha copy/paste:at in mina tester och bara uppdaterat attributen till classen och testmetoderna var det bara att köra.

Alla test fungerade bra i NUnits egna testrunner men ett av testen misslyckades i ReSharpers integrerade testrunner i Visual Studio. Det test som rapporterades som misslyckat var ett test som hade attributet [ExpectedException]. Det visade sig att ReSharper inte kan hantera det attributet. Istället för att använda ett attribut för att markera att man förväntar sig ett fel från en metod får man använda sig av en annan assert från NUnit:

var ex = Assert.Throws(() => target.MethodThatWillReturnException());