2017-09-05 2 views
0

J'ai une fonction asynchrone que je voudrais surveiller si elle est appelée et quels sont les arguments. La fonction prend deux arguments, fait une requête réseau et revient avec une réponse basée sur les deux arguments, par exemple disons que c'est une addition api. Vous passez en 1 et 1 et obtenez 2. Plutôt que de faire cette demande je voudrais créer un simulacre pour cela où je remplace cette méthode avec sa contrepartie syncronously. Par exemple.Mock une fonction en le remplaçant par une alternative fictive

est ici la fonction d'ajout d'origine:

const async realAdd = (a, b) => { 
    return makeRequest(`http://my-service.com/add?a=${a}&b=${b}`) 
} 

Voici celui que je voudrais utiliser pour se moquant:

const async dummyAdd = (a, b) => { 
    return Promise.resolve(a + b) 
} 

Disons qu'il est une fonction qui prend add et l'utilise. Dans ce cas, c'est la fonction que j'aimerais utiliser, et je voudrais me moquer de add avec la version précédente.

const mockAdd = sinon.something(dummyAdd) 
let result = someFunctionThatUses(mockAdd) 
assert.equal(mockAdd.called, 1) 

Tout ce que je veux est un moyen de passer dans la méthode add mannequin et vérifier si elle a été appelée, mais je veux encore la fonction add-return la promesse.

Répondre