Freigeben über


Gewusst wie: Erstellen eines datengesteuerten Komponententests

Sie können einen Komponententest einrichten, um Werte nicht in einer Testmethode eingeben zu müssen, sondern aus einer Datenquelle abrufen können. Der Komponententest wird nacheinander für jede Zeile in der Datenquelle ausgeführt. Dies vereinfacht das Testen einer Vielzahl von Eingaben in einem einzelnen Testlauf.

Die Einrichtung eines Komponententests zum Abrufen von Werten aus einer Datenquelle erfolgt in zwei Phasen. In der ersten wird die Verbindung zwischen der Komponententestmethode und der Datenquelle über die Eigenschaften des Komponententests hergestellt. In der zweiten Phase werden die Variablen der Methode angewiesen, ihre Werte aus der entsprechenden Spalte in der Datenquelle abzurufen. Diese Festlegung nehmen Sie in der Logik der Testmethode selbst vor.

Beispiel für einen datengesteuerten Komponententest

Die folgende Abbildung zeigt zwei Komponententests: in einem werden zwei Zahlen hinzugefügt, in dem anderen wird ein Vorname mit einem Nachnamen verkettet. Diese Komponententests werden so eingerichtet, dass die Werte für die Tests aus einer Datenbank abgerufen werden.

Datengesteuerte Komponententests

Beispiel für einen datengesteuerten Komponententest

  1. In dieser Zeile werden das DataSource-Attribut und die Verbindungszeichenfolge bereitgestellt. Die genauen Informationen in der Verbindungszeichenfolge unterscheiden sich je nach verwendetem Datenquellentyp. In diesem Beispiel wurde eine Access-Datenbank verwendet.

  2. Wenn die Werte aus der Datenbanktabelle empfangen werden, müssen sie in den richtigen Typ konvertiert werden. In diesem Beispiel wurden die Werte aus der Datenbank im ersten Komponententest in Zeichenfolgen und im zweiten Komponententest in ganze Zahlen konvertiert.

  3. Der TestContext.DataRow-Eigenschaft wird im Komponententest die Zeile entnommen, aus der Daten abgerufen werden sollen. In diesem Fall werden Daten ab der ersten Zeile und dann sequenziell abgerufen, bis die letzte Zeile in der Tabelle erreicht wird. Weitere Informationen zu dieser Eigenschaft finden Sie unter TestContext.

  4. Dem Namen der Spalte wird im Komponententest die Spalte entnommen, aus der Daten abgerufen werden sollen.

Die ausführlichen Ergebnisse für jede im Test verwendete Datenzeile zeigen Sie an, indem Sie im Fenster Testergebnisse auf den Test doppelklicken.

Ausführliche Ergebnisse eines datengesteuerten Komponententests

Ausführliche Ergebnisse von datengesteuerten Komponententests

Herstellen einer Verbindung zwischen dem Komponententest und der Datenquelle

Dies ist die erste Phase der Einrichtung eines Komponententests für die Verwendung einer Datenquelle. In dieser Phase stellen Sie die Verbindung zwischen der Komponententestmethode und der Datenquelle her.

Diese Prozedur zeigt, wie die Eigenschaften des Komponententests verwendet werden, um die Verbindung zu erstellen. Sie können die Verbindung jedoch auch erstellen, indem Sie eine APP.CONFIG-Datei erstellen und dieser die Verbindungsinformationen hinzufügen. Der Vorteil der Verwendung einer APP.CONFIG-Datei besteht darin, dass Sie den Speicherort der Datenbank ändern können, ohne Änderungen am Komponententest selbst vornehmen zu müssen. Informationen zum Erstellen und Verwenden einer APP.CONFIG-Datei finden Sie unter Exemplarische Vorgehensweise: Verwenden einer Konfigurationsdatei zum Definieren einer Datenquelle.

Tipp

Wenn Sie mit Datenverbindungszeichenfolgen vertraut sind, können Sie nach der ersten Klammer des [TestMethod()]-Elements die Datenverbindungszeichenfolge eingeben, statt das Eigenschaftenfenster zu verwenden.

[DataSource(Datenverbindungszeichenfolge einsetzen), TestMethod()]

So verbinden Sie den Komponententest mit der Datenquelle

  1. Öffnen Sie die Projektmappe mit der Testmethode, für die Sie eine Datenquelle verwenden möchten.

  2. Zeigen Sie im Menü Test auf Fenster, und klicken Sie dann auf Testansicht.

  3. Klicken Sie im Testansichtsfenster mit der rechten Maustaste auf den Komponententest, für den Sie eine Datenquelle verwenden möchten, und klicken Sie dann auf Eigenschaften.

  4. Klicken Sie im Eigenschaftenfenster auf Datenverbindungs-Zeichenfolge und dann auf die Auslassungspunkte (…).

  5. Folgen Sie den Anweisungen im Assistenten für neue Datenquellen, um die Datenverbindung zu erstellen.

    Dem Komponententest wird nach der ersten Klammer des [TestMethod()]-Elements eine Verbindungszeichenfolge hinzugefügt.

Anweisen von Variablen, Werte aus der Datenquelle abzurufen

Dies ist die zweite Phase der Einrichtung eines Komponententests für die Verwendung einer Datenquelle. In der zweiten Phase weisen Sie die Variablen der Methode an, ihre Werte aus der entsprechenden Spalte in der Datenquelle abzurufen.

So weisen Sie Variablen an, Werte aus der Datenquelle abzurufen

  1. Öffnen Sie die Komponententestdatei mit der Testmethode enthält, für die Sie eine Datenquelle verwenden möchten, und suchen die Variablen in der Testmethode.

  2. Verwenden Sie für jede Variable, die Sie aus der Datenquelle abgerufen werden soll, die Syntax TestContext.DataRow["NameOfColumn"].

Tipp

Möglicherweise müssen Sie, wie im vorherigen Beispiel gezeigt, die Datentypen aus denen der Datenquelle in die des Testcodeprojekts konvertieren.

Ausführen des Komponententests und Anzeigen der Ergebnisse

Einen datengesteuerten Komponententest führen Sie wie jeden anderen Komponententest aus. Die ausführlichen Ergebnisse für jede im Test verwendete Datenzeile können Sie anzeigen, indem Sie im Fenster Testergebnisse auf den Test doppelklicken.

So führen Sie einen datengesteuerten Komponententest aus und zeigen die Ergebnisse an

  1. Klicken Sie mit der rechten Maustaste auf eine beliebige Stelle im Komponententest, und klicken Sie dann auf Tests ausführen.

  2. Doppelklicken Sie nach den Testläufen im Fenster Testergebnisse auf den Test, um die Ergebnisse der einzelnen Testdurchläufe im Fenster Datengesteuerte Testergebnisse anzuzeigen.

Siehe auch

Referenz

TestContext

Konzepte

Aufbau eines Komponententests

Gewusst wie: Erstellen und Ausführen eines Komponententests