Mit Jest einen Link von react-router v4 testen

10

Ich verwende jest , um eine Komponente mit einem <Link> von react-router v4 zu testen.

Ich bekomme eine Warnung, dass <Link /> den Kontext von einer react-router <Router /> -Komponente benötigt.

Wie kann ich in meinem Test einen Routerkontext vortäuschen oder bereitstellen? (Grundsätzlich, wie kann ich diese Warnung beheben?)

Link.test.js

%Vor%

Die Warnung, wenn der Test ausgeführt wird:

%Vor%     
Don P 03.05.2017, 23:24
quelle

2 Antworten

17
___ tag123reactrouter ___ React Router - Eine komplette Routing-Bibliothek für React, inspiriert von Embers Routing-System ___ tag123jestjs ___ Jest ist ein Framework für JavaScript-Unit-Tests von Facebook, das auf Jasmine basiert und eine automatisierte Pseudo-Erstellung sowie eine jsdom-Umgebung bietet. Es wird oft zum Testen von React-Komponenten verwendet. ___ antwort43775325 ___

Sie können Ihre Komponente mit dem StaticRouter in den Test einbinden, um den Router-Kontext in Ihre Komponente zu bekommen:

%Vor%

Sehen Sie sich die Test-Tools zum Testen

an     
___ qstnhdr ___ Mit Jest einen Link von react-router v4 testen ___ answer49196926 ___

Ich hatte das gleiche Problem und die Verwendung von %code% würde immer noch die %code% erfordern, die mehr Konfiguration benötigt hätte, um sie in meinem Test verfügbar zu haben, also nutzte ich %code% , was sehr gut und ohne Probleme funktionierte.

%Vor%     
___ qstntxt ___

Ich verwende %code% , um eine Komponente mit einem %code% von react-router v4 zu testen.

Ich bekomme eine Warnung, dass %code% den Kontext von einer react-router %code% -Komponente benötigt.

Wie kann ich in meinem Test einen Routerkontext vortäuschen oder bereitstellen? (Grundsätzlich, wie kann ich diese Warnung beheben?)

Link.test.js

%Vor%

Die Warnung, wenn der Test ausgeführt wird:

%Vor%     
___ tag123reactrouterv4 ___ React Router - Eine komplette Routing-Bibliothek für React, inspiriert von Embers Routing-System ___
Andreas Köberle 04.05.2017, 06:24
quelle
3

Ich hatte das gleiche Problem und die Verwendung von StaticRouter würde immer noch die context erfordern, die mehr Konfiguration benötigt hätte, um sie in meinem Test verfügbar zu haben, also nutzte ich MemoryRouter , was sehr gut und ohne Probleme funktionierte.

%Vor%     
Mahdi 09.03.2018 15:21
quelle