Mir ist bewusst, dass Komponententests vollständig unabhängig voneinander sein sollten, was bedeutet, dass die Reihenfolge der Operationen nie wichtig sein sollte.Unit Testing und Isolation
Wie gehen Sie mit einem Szenario um, bei dem Sie einen Test durchführen, der ein großes Dokument über das Netzwerk lädt, aber andere Tests benötigt, um Informationen zu diesem Dokument zu verifizieren?
Ich möchte nicht, dass das Dokument für jeden Test angefordert wird, der dies oder das überprüfen muss.
Es funktioniert einwandfrei, wenn das Dokument als ein statisches Mitglied der Testklasse und der erste Test gespeichert wird, der es zuerst abruft. Dann können die nachfolgenden Tests ihre eigene Sache mit der zwischengespeicherten Kopie machen.
Aber wieder ist Reihenfolge der Operationen mit Komponententests falsch, da sie unabhängig sein sollten.
Was ist die beste Vorgehensweise in diesem Fall? Ich würde es vorziehen, sie alle als separate Tests zu haben und nicht zu einem einzigen, großen Test zusammenzufassen, der alle möglichen Dinge über das Dokument, nachdem es abgerufen wurde, behaupten kann.
Mein aktuelles Szenario ist Visual Studio 2015 Update 3 und C#, aber ich denke, es kann auf jedes ähnliche Setup angewendet werden.
In Visual Studio Test Runner können Sie "Wiedergabelisten" einrichten, mit denen Sie sie in einer Reihenfolge ausführen können, aber es fühlt sich immer noch falsch an.
Bearbeiten: Ich bin auf den statischen Ansatz gelehnt, in diesem Fall muss jeder Test das Dokument über eine einzige Methode erhalten. Ich denke, ein Singleton-Ansatz (wenn Null, geh und hol es, sonst gib es zurück).
Aber jede Rückmeldung ist gut.
Sie können einmalige Einrichtungslogik in einem Verfahren mit 'markiert put [TestInitialize]' 'von Microsoft.VisualStudio.TestTools.UnitTesting' – Brian
@ Brian TestInitialize pro Test-Methode aufgerufen wird –
Warum brauchen Sie diese Ressource erhalten aus der entfernte Standort? Das macht die Tests abhängig von dem, was dort läuft. – Sign