Comment vérifier plusieurs arguments sur de multiples appels pour la plaisanterie espions?
J'ai la fonction suivante dans un Réagir composant:
onUploadStart(file, xhr, formData) {
formData.append('filename', file.name);
formData.append('mimeType', file.type);
}
C'est mon test, qui devient l'espion d'être appelé:
const formData = { append: jest.fn() };
const file = { name: 'someFileName', type: 'someMimeType' };
eventHandlers.onUploadStart(file, null, formData);
expect(formData.append).toHaveBeenCalledWith(
['mimeType', 'someMimeType'],
['fileName', 'someFileName']
);
Cependant, l'affirmation n'est pas de travail:
Expected mock function to have been called with:
[["mimeType", "someMimeType"], ["fileName", "someFileName"]]
But it was called with:
["mimeType", "someMimeType"], ["filename", "someFileName"]
Quelle est la bonne façon de l'utiliser toHaveBeenCalledWith
?
Vous devez vous connecter pour publier un commentaire.
J'ai pu se moquer de multiples appels et de vérifier les arguments de cette façon:
où
mockFn
est votre moqué nom de la fonction.Depuis plaisanterie 23.0 il est
.toHaveBeenNthCalledWith(nthCall, arg1, arg2, ....)
https://facebook.github.io/jest/docs/en/expect.html#tohavebeennthcalledwithnthcall-arg1-arg2-La signature est
.toHaveBeenCalledWith(arg1, arg2, ...)
, oùarg1, arg2, ...
dans un unique appel (voir).Si vous voulez tester plusieurs appels, juste
expect
à de multiples reprises.Malheureusement, je n'ai pas encore trouvé une méthode de test de l'ordre de plusieurs appels.
expect
(voir ma réponse ci-dessous).Vous pouvez également tester
toHaveBeenCalledWith
, et le test plusieurs fois pour chaque paramètre attendu combinaison.L'exemple ci-dessous les tests que GA a été appelé trois fois, dont trois plugins nécessaires.
À l'OP cas, vous pouvez tester avec
Une autre solution basée sur l'Andi est un. Sélectionnez l'appel que vous voulez et de vérifier la valeur des arguments. Dans cet exemple, le premier appel est sélectionné:
Je vous recommandons de vérifier cette Plaisanterie triche:
https://devhints.io/jest
Cela a fonctionné pour moi aussi...chargement initial de la page fait un recherche par défaut...interaction de l'utilisateur et cliquez sur rechercher une autre recherche...il est nécessaire de vérifier le processus de recherche a augmenté les valeurs de recherche correctement...