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.

War es hilfreich?

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.

https://gist.github.com/adjavaherian/a15ef0461e65d58aacd2

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top