2017-07-13 1 views
0

Je suis passé par la documentation comprendre ce qui est exactement stub.callsArgWith ici: http://sinonjs.org/releases/v1.17.7/stubs/Enchaînement callsArgWith sur talon

Mais je ne pouvais pas comprendre ce qu'il est logique quand nous enchaînons comme ci-dessous:

stub.callsArgWith(1, null, "ok") 
    .callsArgWith(1, new Error("Error!")); 

Donc, fondamentalement, ce que cela signifie est param à l'index 1 est une fonction de rappel et il devrait être appelé avec param = null et 2nd param comme "ok". Mais ce que je ne pouvais pas comprendre, c'est dans quelle situation nous faisons le chaînage des appelsArgWith et dans quelle séquence sont-ils utilisés. S'il vous plaît aidez-moi à comprendre ce qui est exactement le sens de deux lignes ci-dessus comment ils vont être exécutés, dire quand il faudra «Ok» et quand il retournera une erreur.

Répondre

0

Dans les anciennes versions de Sinon (spécifiquement les versions 1.5 - 1.7), c'est ainsi que vous décriviez le comportement des appels consécutifs.

Sinon, le deuxième appel callsArgWith remplace le comportement du premier callsArgWith.


Ainsi, dans l'exemple de votre (et en supposant que la version de Sinon est v1.5 - 1.7):

stub.callsArgWith(1, null, "ok") 
    .callsArgWith(1, new Error("Error!")); 

Lorsque la fonction est appelée bouchonné pour la première fois, il appellera la 2ème paramètre de la fonction stubbed avec les paramètres null et "ok".

La deuxième fois que la fonction stubbed est appelée, elle appelle le 2ème paramètre de la fonction stubbed avec un objet Error.


Ainsi, dans l'exemple de votre (et en supposant que la version de Sinon est pas v1.5 - 1.7):

stub.callsArgWith(1, null, "ok") 
    .callsArgWith(1, new Error("Error!")); 

Chaque fois que la fonction est appelée, elle écrasa appellera le 2ème paramètre de la fonction stubbed avec un objet Error.


Documentation Lien: http://sinonjs.org/releases/v1.17.7/stubs/#defining-stub-behavior-on-consecutive-calls