njsetn:asynchronous_mocha_testing
Pour tester par exemple une web request, le dispositif de test va devoir attendre que la requête soit complétée.
// tools-spec.js describe(“Tools()”, function() { describe(“printName()”, function() { it("should print the last name first", function() { var results = tools.printName({ first: "Alex", last: "banks"}); expect(results).to.equal("Banks, Alex"); }); }); describe("loadWiki()", function() { this.timeout(5000); // on règle le timeout sur 5000 en lieu et place du réglage par défaut (2000); it("Load Abraham Lincoln's wikipedia page", function(done) { // le done est une fonction dont mocha va attendre l'invocation avant de terminer le test tools.loadwiki({ first: "Abraham", last: "Lincoln"}, function(html) { expect(html).to.be.ok; done(); // on indique la fin du test }); }); }); });
// tools.js var https = require("https"); (...) loadWiki(person, callback) { var url = `https://en.wikipedia.org/wiki/${person.first}_${person.last}`; https.get(url, function(res) { var body = ""; res.on("data", function(chunk) { body += chunk; }); res.on("end", function() { callback(body); }); } (...)
njsetn/asynchronous_mocha_testing.txt · Last modified: 2016/03/28 13:50 by leo