J'ai une fonction, qui s'exécute sur le nœud et dans le navigateur, que je veux tester avec plaisanterie:
const myFn = () => {
if(typeof window !== 'object'){
return 1;
}
return 2;
}
Comment puis-je définir l'objet de fenêtre globale sur undefined, pour tester la branche de nœud et que 1 est renvoyé.
par exemple.
test('myTest', ()=> {
global.window = undefined;
expect(myFn()).toEqual(1); // result: 2
});
Ive a essayé les suggestions ici sans succès: Mocking globals in Jest
Vous pouvez essayer d'utiliser le @jest-environment
docblock, disponible depuis la version 20.0.0, pour changer l'environnement pour différents tests. Par défaut, il utilise jsdom
, mais vous pouvez le modifier pour utiliser node
. Voici un extrait de leur documentation:
/**
* @jest-environment jsdom
*/
test('use jsdom in this test file', () => {
const element = document.createElement('div');
expect(element).not.toBeNull();
});
Réf: https://facebook.github.io/jest/docs/en/configuration.html#testenvironment-string