Allgemeines
NUnit (http://www.nunit.org/) ist ein freies Test-Framework u.a. für .NET-Applikationen.
- Getestet werden dabei hauptsächlich Klassenbibliotheken, da UI-Komponenten schlecht testbar sind. Das erfordert bei den zu testenden Projekten eine saubere Trennung zwischen UI und Logik.
- Erstellung und Ablauf eines Tests:
- Basierend auf der Logik-Implementation eines Projektes werden Testklassen erstellt, deren Methode einzelne Testfälle darstellen. Die Testklassen können auch Bestandteil der Projekt-Assemblies sein. Die Kenntlichmachung von Testklassen (Fixtures) und Testfällen erfolgt durch vom Test-Framework definierte Klassen- und Methodenattribute [eckige Klammern].
- Ein Testfall ruft Klassenmethoden, ruft Ergebnisse ab, und vergleicht mittel Asserts Ergebnisse mit erwarteten Werten. Getestet wird am "API" einer Klassenbibliothek (IUT).
- Damit auch das Verhalten am SPI getestet werden kann, werden mittels sogenannter Mock-Klassen die SPI-Komponenten (Plattform-Services, benötigte angrenzende Objekte) eingeschleust. D.h. die IUT wird mit einfachen, eigens für den Test entwickelten Service-Provider versehen. Die Testklasse unterstellt damit ein korrektes bzw. auch fehlerhaftes SPI-Verhalten und prüft am API das IUT-Verhalten. Beispiel: AdminControllerFixture.cs (ReferenceImplementation/UnitTest/Admin/Admin.Module.Tests/). Damit Mock-Klassen problemlos eingeschleust werden können, sollte die IUT-Implementation mit Service- /Objekt-Injektion ausgestattet sein.
- Die Durchführung des Tests wird durch ein externes NUnit-GUI gesteuert. In diesem Werkzeug wird ein Testprojekt angelegt (.nunit), die test-Assemblies eingebunden. In dem Werkzeug werden nun die Strukturen der Testassemblies und deren Testfälle angezeigt und der Test kann direkt gestartet werden. Durch Farbklekse werden Testergebnisse angezeigt.
- NUnit ist kompatibel mit VisualStudio-Testing (VSTS). Das heißt Testklassen-Source können identisch sein. Der Unterschied liegt nur in der Einbindung des Frameworks im using-Kopf (siehe unten). Dieses Verfahren wird z.B. in den Tests der Microsoft Enterprise Library verwendet.
Kompatibilität
#if !NUNIT
using Microsoft.VisualStudio.TestTools.UnitTesting;
#else
using NUnit.Framework;
using TestClass = NUnit.Framework.TestFixtureAttribute;
using TestInitialize = NUnit.Framework.SetUpAttribute;
using TestCleanup = NUnit.Framework.TearDownAttribute;
using TestMethod = NUnit.Framework.TestAttribute;
#endif
Wir arbeiten mit Software von http://www.campus21.de.
Verantwortlich für angezeigte Daten ist der Webdomain-Eigentümer laut Impressum.