2016-06-29 4 views
1

Ich stehe vor einem Problem beim Schreiben eines Testfalls mit Mocha und Chai. Im folgenden Code-Wert von n ist 1. Ich überprüfte es mit console.log(). Obwohl ich diesen Wert gegen 0 teste, wird der Test noch bestanden. Eigentlich spielt es keine Rolle, welcher Wert n getestet wird, der Test läuft trotzdem. Was ist das Problem darin? Kann jemand helfen?Mocha.js Test mit Chai.js funktioniert nicht bei der Bestätigung von numerischen Werten

it("Should have 1 variables", function(){          
    var variable_count = require("../../lib/variable_count").variable_count; 
    var file = __dirname + '/cases/case_3.json';        
    jsonfile.readFile(file, function(err, obj) {                
     var n = variable_count(obj);                   
     expect(n).to.equal(0);                   
     assert.strictEqual(n, 0);                   
    });                          
}); 

Antwort

2

Das Problem ist, dass Ihr Code asynchron ist (wegen jsonfile.readFile()), aber Ihr Test ist synchron.

it("Should have 1 variables", function(done) { 
    var variable_count = require("../../lib/variable_count").variable_count; 
    var file = __dirname + '/cases/case_3.json'; 
    jsonfile.readFile(file, function(err, obj) { 
    var n = variable_count(obj); 
    expect(n).to.equal(0); 
    assert.strictEqual(n, 0); 
    done(); 
    }); 
}); 

Mehr Informationen here:

Um den Test zu asynchronen zu machen, so wartet sie auf ein Ergebnis, können Sie die folgenden verwenden.

Verwandte Themen