2017-08-29 4 views
1

Je suis novice en tests unitaires, et je sais que mes tests ne sont pas utiles ou suivent une bonne pratique spécifique, mais je suis concentré sur le fait de travailler va me permettre de tester mon code frontend en utilisant JSDOM. Je reçois l'erreur "AssertionError: expected undefined to be an array". J'utilise simplement le test de tableau comme test pour m'assurer que JSDOM fonctionne correctement. Aucune autre erreur ne se produit. Toute aide serait très appréciée!Chargement d'un fichier HTML existant avec JSDOM pour les tests unitaires frontaux

+0

J'ai PRECISEE la question à - beforeeach n'est pas terminée avant mes cases à cocher séries de tests . –

Répondre

1

fromFile est une fonction asynchrone, ce qui signifie que lorsque votre beforeEach() est terminé et que les tests commencent à s'exécuter, il charge (probablement) encore le fichier. De deux façons: soit renvoyer une promesse, soit passer un rappel. Donc revenir soit la promesse de fromFile ou faire:

beforeEach(function(done) { 
    JSDOM.fromFile(myFile) 
    .then((dom) => { 
     checkboxes = dom.window.document.querySelectorAll('.checkbox'); 
    }) 
    .then(done, done); 
}); 

La version promesse ressemble à ceci:

beforeEach(function() { 
    return JSDOM.fromFile(myFile) 
    .then((dom) => { 
     checkboxes = dom.window.document.querySelectorAll('.checkbox'); 
    }); 
}); 
+0

Je vais mettre ça à l'épreuve une fois de retour à la maison! Merci d'avoir pris le temps de répondre. –