2016-05-19 21 views
2

Ich weiß, dass wir normalerweise Unit-Tests sagen, die vollständig unabhängig sein sollten, ohne Abhängigkeit von externen Systemen oder Daten - das nennt man Integrationstests.Speichern von Unit-Testdaten in einer externen Datei

Aber ...

Ich möchte ein Modell schreiben, die das Ergebnis einer bestimmten Methode zur Verfügung, die von Natur aus eine recht große Menge an JSON/XML-Daten zurückgibt (als String). Kann ich in diesem Szenario die Daten rechtmäßig in einer Textdatei speichern, die Teil meines Unit-Test-Projekts ist, oder wäre das streng genommen noch ein Integrationstest?

Antwort

0

Ja, Sie können es in einer Textdatei speichern, und es wird weiterhin ein Komponententest sein. (Obwohl, vorzugsweise, würde ich vorschlagen, den Text in dem Test-Code zu setzen selbst, es sei denn, Sie bereits es in einer Datei haben, oder der Text ist wirklich groß.)

Was unterscheidet einen Einheit Test von einer Integration Test ist nicht, ob es das Dateisystem und/oder andere externe Ressourcen berührt. Der entscheidende Unterschied besteht darin, ob der Komponententest nur das Verhalten/den Zustand einer einzelnen Einheit oder mehrerer voneinander abhängiger Einheiten überprüfen soll. Im letzteren Fall haben Sie einen Integrationstest.

So kann ein Komponententest Code von anderen Einheiten oder Systemen ausführen, auf die es ankommt. Aber es sollte davon ausgehen, dass diese anderen Einheiten nur wie erwartet funktionieren, ohne ihr Verhalten zu überprüfen. Ein anderer Ansatz für Komponententests besteht darin, die getestete Einheit durch Spöttern oder Fälschen von Abhängigkeiten zu isolieren. Beide Ansätze sind gültig.