2017-08-09 2 views
0

Je voudrais demander si on peut tester en appelant la bonne fonction dépendant de la condition avec sinon ou moka. Par exemple j'ai classe Knight et je veux savoir si une fonction (knightRun) est appelée, lorsque le paramètre 'data' est vrai.Test de la bonne fonction dépendant de la condition - sinon/mocha - javascript

export class Knight { 

     createKnight(data,reducer) { 
      if (data) { 
       this.knightRun(reducer); 
      } else if (!data) { 
       this.knightFight(reducer); 
      } 
     } 

     private knightFight(reducer) { 
      // do something 
     } 

     private knightRun(reducer) { 
      // do something 
     } 

    } 

Répondre

0

Vous pouvez utiliser des espions pour vérifier si une fonction particulière a été appelée. Sinon.js est une bibliothèque qui fournit un moyen d'espionner les fonctions lors de l'écriture des tests unitaires pour votre JavaScript.

par exemple.

describe('Knight class',() => { 
    it('should call knightRun when data is false',() => { 
    const knight = new Knight().createKnight(false, null) 
    sinon.spy(knight, "knightRun") 
    assert(knight.knightRun.calledOnce) 
    }) 

    it('should call knightFight when data is true',() => { 
    const knight = new Knight().createKnight(true, null) 
    sinon.spy(knight, "knightFight") 
    assert(knight.knightFight.calledOnce) 
    }) 
}) 

En outre, le mot-clé private n'est pas valide en JavaScript.