2017-09-13 7 views
0

Actuellement, j'ai créé un test pour deux fonctions en utilisant mocha et chai.Cas de test dans nodejs avec mocha, chai

Ils devraient répondre différemment selon différents paramètres de la demande HTTP POST/GET.

Cependant, je me demande quelle est la meilleure pratique pour vérifier 3 cas de test dont je pense qu'ils auront la même entrée.

Par exemple,

describe('Function A', function() { 

it('should retrun 404 when receipt ID is invalid', function(done) { 
    chai.request(server) 
     .post('/generateSales/') 
     .send(validParams1) 
     .end(function(err, res){ 
      res.should.have.status(404); 
      done(); 
     }); 
}); 

it('should retrun 404 when receipt ID is invalid', function(done) { 
    chai.request(server) 
     .post('/generateSales/') 
     .send(validParams2) 
     .end(function(err, res){ 
      res.should.have.status(404); 
      done(); 
     }); 
}); 

it('should retrun 404 when receipt ID is invalid', function(done) { 
    chai.request(server) 
     .post('/generateSales/') 
     .send(validParams3) 
     .end(function(err, res){ 
      res.should.have.status(404); 
      done(); 
     }); 
}); 


}); 

Quelle est la bonne façon de tester tous les params (validParams1,2,3) dans un seul bloc it? (comme je m'attends à ce qu'ils aient la même réponse)

Répondre

0

En raison de questions asynchrones, vous ne devriez pas appeler de boucle à l'intérieur du bloc it.

Je trouve une place solution de rechange, en utilisant it-each Module

Le lien suivant montre comment traiter avec le test asynchrone boucles avec mocha lorsque vous souhaitez utiliser 20 API ou 20 cas de test dans un bloc it

https://whitfin.io/asynchronous-test-loops-with-mocha/