Anmelden

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

   
Top

Wir arbeiten mit Software von http://www.campus21.de.

Verantwortlich für angezeigte Daten ist der Webdomain-Eigentümer laut Impressum.

Suche