2014-04-10 5 views
43

Was ist der Unterschied zwischen TestInitialize vs ClassInitialize in MSTest? Was sind die Vorteile von jedem?TestInitialize vs ClassInitialize

Ich habe den Eindruck, dass TestInitialze mit jedem Test jedes Mal laufen sollte? Ist das korrekt? Und dass ClassInitialize jedes Mal eine neue Instanz einer Klasse ausgeführt wird?

Antwort

67

Beide Attribute sind nur für die Klassen (und damit Tests) verfügbar, wo sie hingehören.

TestInitialize läuft vor jedem Test die auf die die gleiche Klasse deklariert wird, in dem das Attribut deklariert wird.

ClassInitialize läuft nur auf die Initialisierung der Klasse, in der das Attribut deklariert ist. Mit anderen Worten, es wird nicht für jede Klasse laufen. Nur für die Klasse, die die ClassInitialize-Methode enthält.

Wenn Sie eine Methode möchten, die einmal vor der Initialisierung aller Tests oder Klassen ausgeführt wird, verwenden Sie die AssemblyInitialize.

+1

Was wäre ein Anwendungsfall von ClassInitialize und AssemblyInitialize? Ich habe eine harte Zeit, um einen tatsächlichen Anwendungsfall für ClassInitialize zu bekommen ... – Invader

Verwandte Themen