Um Ihre Frage direkt zu beantworten - nein, ich glaube auch nicht, dass es sich bei korrekter Verwendung um ein Anti-Pattern handelt.
--- Ausführlichere Antwort ---
Aus meiner Erfahrung denke ich, dass dies stark vom Ziel Ihres Tests abhängt. Hier ist die Faustregel, die ich in der Vergangenheit verwendet habe und die mir bei der Entscheidung geholfen hat:
Testen Sie tatsächlich eine kleine Codeeinheit? (Ein wahrer Unit-Test)
Wenn ja, dann finde ich es viel einfacher, die Daten innerhalb des Tests selbst zu erstellen, da ich sehen kann, was übergeben wird. In diesen Fällen suche ich normalerweise nach einer Jasmine- ähnlichen Bibliothek, die ich verwende, weil ich das finde Dies erleichtert die Erstellung und Pflege der Testdaten. Dies ist jedoch eine persönliche Präferenz - verwenden Sie, was Ihre Arbeit erleichtert.
Wenn nein, testen Sie wahrscheinlich das System selbst. In diesen Fällen lade ich häufig Daten von einer externen Quelle. Die Gründe dafür sind:
- Bei diesem Test geht es nicht um Code-Klarheit für Programmierer (obwohl dies immer noch wichtig ist - jemand muss dies beibehalten), sondern darum, genügend verschiedene Datentypen durch den gesamten Teil des Systems zu leiten, um einigermaßen sicher zu sein, dass es funktioniert.
- Oft schreibe ich den Installationscode, um die Testdaten zu laden und zu verwenden, aber die Daten selbst werden von einer anderen Person erstellt (in meinem Fall normalerweise von einem QS-Mitarbeiter). Diese Leute sind normalerweise keine Programmierer, daher kann ich nicht erwarten, dass sie Code bearbeiten.
So lange, so kurz, es kommt darauf an, was Sie testen und warum. Beide Ansätze sind nützlich und haben ihren Platz - wählen Sie, was für Ihre Situation am besten funktioniert.