Gibt es eine Möglichkeit, Daten zu verwenden, die bereits im Speicher vorhanden sind, um Komponententests auszuführen?

8

Ich weiß, dass ich Daten in Dateien verwenden kann, um den Komponententest zu steuern, z. B. Daten in einer CSV- oder XML-Datei.

Zum Beispiel:

%Vor%

Ich würde gerne wissen, ob es eine Möglichkeit gibt, dass ich anstelle einer Datei eine Datenstruktur verwenden kann, die bereits im Speicher ist, um die Tests zu steuern.

Etwas wie:

%Vor%     
Paulo Pinto 10.11.2011, 00:01
quelle

6 Antworten

3

Wenn es sich im Arbeitsspeicher befindet, würde ich es vorziehen, keine DataSource zu verwenden, sondern eine T4-Vorlage zu verwenden, um stattdessen automatisch Unit-Tests zu generieren. Auf diese Weise schreiben Sie den Test nur einmal, aber in den Ergebnissen für den Testlauf sehen Sie für jeden der von Ihnen getesteten Eingaben einen Eintrag. Fügen Sie diese .tt-Datei zu Ihrem Testprojekt hinzu.

%Vor%     
Chaitanya 10.11.2011 00:46
quelle
1

Eine einfache Lösung kann das sein ...

%Vor%

Auf diese Weise können Sie Ihre Testmethode sowohl mit Daten aus der Datei als auch mit Daten aus dem Speicher verwenden.

    
Salvatore Previti 10.11.2011 00:12
quelle
1

Ich glaube nicht, dass Sie das mit dem [DataSource] -Attribut machen können, aber Sie können ein mehr oder weniger dasselbe manuell tun.

Laden Sie Ihre Daten in eine mit [AssemblyInitialize] oder [ClassInitialize] dekorierte Methode. Schreiben Sie dann Ihre Tests neu, um die Daten zu wiederholen. Leider haben Sie auf diese Weise nur einen einzigen Test statt separate Ergebnisse pro Testlauf.

    
Adam Lear 10.11.2011 00:14
quelle
1

Ich beantworte ein ähnliche Frage und die Lösung, die ich zuvor verwendet habe, besteht darin, aus meinen im Speicher befindlichen Daten eine einfache CSV-Datei zu generieren.

    
Magnus Lindhe 28.03.2012 09:59
quelle
1

Sie können MSTestHacks über NuGet verwenden, um Daten von einem IEnumerable zu füttern, siehe diese Antwort .

    
Macke 29.01.2016 13:12
quelle
0

Ich denke, Gallio Ambience sollte dieses Problem lösen. Ich bin mir nicht sicher, was der aktuelle Stand des Projekts ist.

    
mwilson 10.11.2011 01:04
quelle