Dans Jasmine, se moquer d'une importation de module ES6 est simple. Cependant, dans Jest, le processus peut être plus difficile, en particulier lorsqu'il s'agit de modules qui utilisent les exportations par défaut. Cet article explique comment simuler les importations de modules ES6 dans Jest à l'aide d'un simple hack import *.
Traditionnellement, se moquer d'une importation nécessitait de remplacer les importations par des require et de les déclarer dans les tests. Cette approche peut être indésirable.
<code class="javascript">// undesirable approach import myModule from '../myModule'; import dependency from '../dependency'; describe('myModule', () => { // ... });</code>
Au lieu de cela, nous pouvons tirer parti de import * pour muter directement les exportations du module, nous permettant de nous moquer de la fonction souhaitée ou de l'exportation par défaut. Pour les exportations nommées :
<code class="javascript">import * as dependency from '../dependency'; // ... dependency.doSomething = jest.fn(); // mutate the named export myModule(2); expect(dependency.doSomething).toBeCalledWith(4);</code>
De même, pour les exportations par défaut :
<code class="javascript">import * as dependency from '../dependency'; // ... dependency.default = jest.fn(); // mutate the default export myModule(2); expect(dependency.default).toBeCalledWith(4);</code>
Bien que cette méthode offre une solution de contournement pour se moquer des importations ES6, il est essentiel de noter qu'elle implique une mutation du module importé , ce qui peut introduire des effets secondaires et des problèmes potentiels lors des exécutions de tests. Par conséquent, l'utilisation des méthodes de moquerie natives de Jest, telles que jest.spyOn ou jest.mock, est recommandée comme approche privilégiée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!