Komponententest mit Visual Studio

Meine neue WebSite finden Du jetzt unter https://AttilaKrick.com.

 

Wichtige Attribute der Test-Methoden

[TestClass]
internal class MeineTestKlasse
{
    [TestMethod]
    [TestCategory("Core Features")]
    [Owner("Uwe")]
    [Priority(2)]
    [Ignore]
    [Timeout(1000)]
    internal void Test()
    {
        // Test was !
    }
}

Dem Test weitere Funktionalität hinzufügen

[ExcludeFromCodeCoverage]
[GeneratedCode("I'm", "1.0")]
[TestClass]
internal class MyTest
{
    /// Testkontext der Informationen und Funktionalität für den
    ///  Testlauf bietet.
    public TestContext TestContext { get; set; }

    #region Sie können in Tests zusätzlichen Attribute verwenden:

    // Bevor der ersten Test in der Klasse ausgeführt wird.
    [ClassInitialize()]
    public static void MyClassInitialize(TestContext testContext)
    { } // Code

    // Nachdem alle Tests in einer Klasse ausgeführt wurden.
    [ClassCleanup()]
    public static void MyClassCleanup()
    { } // Code

    // Vor jedem einzelnen Test Code.
    [TestInitialize()]
    public void MyTestInitialize()
    { } // Code

    // Nach jedem einzelnen Test Code.
    [TestCleanup()]
    public void MyTestCleanup()
    { } // Code

    #endregion
}

Tipps

  • Der Text Explorer in VS bietet ausgefeilte Filter- und Such-Möglichkeiten:
    Link

Weiterführende Informationen

  • Exemplarische Vorgehensweise zum Erstellen und Ausführen von Komponententests:
    Link
  • Unit-Testing
    Link

Was zeichnet einen guten Test aus?

  • Ein guter Test ist isoliert – Sie sind voneinander unabhängig,
    so dass die Reihenfolge ihrer Ausführung das Testergebnis nicht beeinflusst.
  • Ein guter Test überprüft jeweils nur eine Eigenschaft.
  • Ein guter Test ist vollständig automatisiert.
  • Ein guter Test ist leicht verständlich und kurz.
  • Ein guter Test weißt die gleiche Codequalität auf, wie der Produktivcode,
    Stichwort Redundanzen, Style, Metrik, Code Conventions, etc.
  • Ein guter Test ist nach Testfixture gruppiert, nicht um eine Klasse.
  • Ein guter Test wird vor dem zu testenden Code geschrieben,
    Stichwort „Testgetriebene Entwicklung“.

Ziel

  • Qualitätssicherung
  • Voraussetzung für Refactorings
  • Im Zeitpunkt der Erstellung das Design der Software steuern
  • Aufdecken von versehentliche Änderungen des Verhaltens
  • Aufdecken der unbeabsichtigten Fernwirkung von neuen Funktionen
    auf bereits bestehende