User Tools

Site Tools


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