Mocha.js测试Chai.js无法断言数值

时间:2016-06-29 12:07:02

标签: unit-testing mocha assert chai

我在使用Mocha和Chai编写测试用例时遇到了问题。在以下代码中,n的值为1.我使用console.log()进行了检查。虽然我正在针对0测试此值,但测试仍在通过。实际上,测试n的值是什么并不重要,无论如何测试都在通过。它有什么问题?有人可以帮忙吗?

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);                                                                           
    });                                                                                                     
});

1 个答案:

答案 0 :(得分:2)

问题是您的代码是异步的(因为jsonfile.readFile()),但您的测试是同步的。

要使测试异步,等待结果,您可以使用以下内容:

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();
  });
});

更多信息here