Des tests de boucle de moka?

J’essaie de boucler une suite de tests mocha (je veux tester mon système contre une multitude de valeurs avec les résultats attendus), mais je ne parviens pas à le faire fonctionner. Par exemple:

spec / example_spec.coffee :

test_values = ["one", "two", "three"] for value in test_values describe "TestSuite", -> it "does some test", -> console.log value true.should.be.ok 

Le problème est que la sortie du journal de la console ressemble à ceci:

 three three three 

Où je veux qu’il ressemble à ceci:

 one two three 

Comment puis-je parcourir ces valeurs pour mes tests moka?

Le problème ici est que vous fermez sur la variable “valeur”, de sorte qu’il sera toujours évalué à quelle que soit sa dernière valeur.

Quelque chose comme ça marcherait:

 test_values = ["one", "two", "three"] for value in test_values do (value) -> describe "TestSuite", -> it "does some test", -> console.log value true.should.be.ok 

Cela fonctionne car, lorsque la valeur est passée dans cette fonction anonyme, elle est copiée dans le nouveau paramètre value de la fonction externe et n’est donc pas modifiée par la boucle.

Edit: Coffeescript ajouté “faire” gentillesse.

Vous pouvez utiliser «piloté par les données». https://github.com/fluentsoftware/data-driven

 var data_driven = require('data-driven'); describe('Array', function() { describe('#indexOf()', function(){ data_driven([{value: 0},{value: 5},{value: -2}], function() { it('should return -1 when the value is not present when searching for {value}', function(ctx){ assert.equal(-1, [1,2,3].indexOf(ctx.value)); }) }) }) })