0
votes

Comment puis-je vous moquer et personnaliser les valeurs d'une fonction importée d'un package NPM à l'aide de la JEST?

J'utilise iSmobileOnly à partir du package NPM "React-Detect-détecter" dans mon composant de réact (samplecomonent.js).

Je voudrais personnaliser la valeur de retour de ismobileonly dans mes tests de l'unité de plaisanterie.

J'ai essayé que Jest Manuel se moque comme mentionné dans le lien ci-dessous: https://jestjs.io/docs/fr/manual-mocks

Mais cela ne semble pas fonctionner pour moi.

J'ai aussi essayé: Mockimplementation de Jest La maquette de plaisanterie Le spyon xxx

dans mes tests de l'unité de plaisanterie, je voudrais se moquer de la fonction ismobileonly de telle manière que je devrais pouvoir personnaliser sa Valeur de retour à "vrai". La valeur par défaut est "FALSE".


0 commentaires

3 Réponses :


0
votes

Vous pouvez éventuellement remplacer l'agent utilisateur à des fins de test, donc réact-périphérique-détecter le package l'identifiera comme si vous avez besoin, Voici 's comment faire ça.

Ce sujet doit également être utile.


0 commentaires

0
votes

Enfin! Je me suis inscrit moi-même après des heures de lutte. Voici ce que j'ai fait:

  1. créé __ simule le dossier __ au même niveau que le répertoire nœud_modules où le package "réact-périphérique-détecter" est disponible. Remarque: le cas plus petit est important pour __ moqueurs __ .
  2. a créé un fichier nommé "réact-périphérique-détect.js" dans le __ moqueurs __ dossier.
  3. a ajouté le code suivant en elle: XXX

  4. Dans le fichier de test, j'ai importé le "ismobileonly" comme je l'ai fait dans l'original Composant: XXX

  5. Maintenant, je peux changer la valeur de "dévicederetect.ismobileonly" à vrai ou faux dans le Fichier moqué selon le besoin de l'unité de test de l'unité.

    Pour plus de détails, reportez-vous à la documentation officielle ici https: // jestjs. IO / DOCS / EN / Manual-Mocks

    Merci @Roman pour la main!


1 commentaires

Ne recevez-vous pas de module non trouvé lorsque vous essayez d'utiliser DeviceDetect dans votre fichier de test? Ce que vous faites a l'air bien, mais cela ne fonctionne pas pour moi.



0
votes

cela a fonctionné pour moi.

Dans votre fichier de test, ajoutez ceci: Import * comme DeviceDetect à partir de "réact-périphérique-détecter";

alors vous pouvez changer Des choses comme: dévicederetect.ismobileonly = true;

par exemple par exemple. xxx


0 commentaires