Mocha.js 测试 Chai.js 无法断言数值
Mocha.js test with Chai.js not working in asserting numeric values
我在使用 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);
});
});
问题是您的代码是异步的(因为 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。
我在使用 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);
});
});
问题是您的代码是异步的(因为 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。