Question

J'écris des tests pour une application React qui utilise Fluxxor pour fournir un répartiteur d'événements.Pour que cela fonctionne, il faut dire à Jest de ne pas se moquer de quelques modules utilisés en interne et fournis par Node lui-même.

Cela signifie que je ne peux pas simplement les ajouter au unmockedModulePathPatterns clé de configuration, et à la place, vous devez utiliser du code comme celui-ci :

[ 'util', 'events' ].forEach(function (module) {
  jest.setMock(module, require.requireActual(module));
});

Cependant, je ne trouve aucun endroit utile pour le mettre.j'ai un setupEnvScriptFile qui configure quelques globales que j'utilise dans presque tous mes tests, mais le jest L'objet ne semble pas être disponible dans ce contexte, donc je ne peux pas simplement y définir les simulations.

En guise de mesure provisoire, j'ai enveloppé le code ci-dessus dans une fonction que j'appelle au début de tout describe bloque le test des magasins Fluxxor, mais c'est loin d'être idéal.

Était-ce utile?

La solution 2

Il semble que la réponse, du moins actuellement, est « vous ne pouvez pas dans ce cas », mais des problèmes restent ouverts concernant les deux modifications qui doivent être apportées pour le prendre en charge.

https://github.com/facebook/jest/issues/106 https://github.com/facebook/jest/issues/107

Autres conseils

As-tu essayé config.setupTestFrameworkScriptFile?On dirait que ce serait le bon endroit pour patcher l'API, selon la documentation.

FWIW, voici une solution que nous avons utilisée pour ajouter la prise en charge de Fluxxor et React-Router à nos spécifications de test.

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top