Wie führe ich vor jedem Scherztest eine Konfiguration aus
-
21-12-2019 - |
Frage
Ich schreibe Tests für eine Reaktionsanwendung, die Fluxxor verwendet, um einen Ereignis-Dispatcher bereitzustellen.Um dies zu erreichen, muss Jest angewiesen werden, einige Module, die intern verwendet werden und vom Knoten selbst bereitgestellt werden, nicht zu verspotten.
Das heißt, ich kann sie nicht einfach zum hinzufügen unmockedModulePathPatterns
konfigurationsschlüssel und müssen stattdessen einen Code wie diesen verwenden:
[ 'util', 'events' ].forEach(function (module) {
jest.setMock(module, require.requireActual(module));
});
Ich kann jedoch nirgendwo etwas Nützliches finden, um es auszudrücken.Ich habe eine setupEnvScriptFile
das richtet ein paar Globals ein, die ich in fast allen meinen Tests verwende, aber die jest
das Objekt scheint in diesem Kontext nicht verfügbar zu sein, daher kann ich die Mocks dort nicht einfach einstellen.
Als hackige Notlösung habe ich den obigen Code in eine Funktion eingeschlossen, die ich am Anfang eines beliebigen aufrufe describe
blockiert das Testen von Fluxxor-Geschäften, aber es ist alles andere als ideal.
Lösung 2
Es scheint, dass die Antwort zumindest derzeit lautet: "In diesem Fall können Sie nicht", aber es gibt offene Fragen für die beiden Änderungen, die vorgenommen werden müssen, um dies zu unterstützen.
https://github.com/facebook/jest/issues/106 https://github.com/facebook/jest/issues/107
Andere Tipps
Hast du es versucht konfig.Setuptestframeworkskriptdatei?Scheint, als wäre es der richtige Ort, um die API gemäß den Dokumenten zu patchen.
FWIW, hier ist eine Lösung, mit der wir unseren Testspezifikationen Fluxxor- und React-Router-Unterstützung hinzugefügt haben.