Chai 的断言无法正常工作
Chai's Assert Not Working Properly
我正在使用 Chai 的断言来检查 return 从我创建的服务器发出的响应值。但是,即使传递给它的值不相等,assert 也是 returning true。
让我举个例子:
describe('Tests', function() {
it('Simple Query', function() {
// assert.equal(2,3); //returns false
controller1.simpleQuery(true, 4, "hello", null, function(error, response, context) {
assert.equal(2,3); //returns true
});
});
});
好的,问题来了:这段代码中的两个 assert 语句都应该 return false 因为 2 不等于 3。但是,现在 simpleQuery() 函数调用之前的 assert 语句是 returning false(这是正确的行为)。 simpleQuery() 调用中的断言语句 return 为真。
老实说,这真的很奇怪,我似乎无法弄清楚为什么要这样做。谁能帮我解决这个问题?
问题是您的 simpleQuery
是异步的。结果,测试将在甚至调用回调之前完成。您需要使用 done
回调来显示 mocha
您的测试是异步的。
describe('Tests', function() {
it('Simple Query', function(done) {
// assert.equal(2,3); //returns false
controller1.simpleQuery(true, 4, "hello", null, function(error, response, context) {
assert.equal(2,3); //returns true
done();
});
});
});
我正在使用 Chai 的断言来检查 return 从我创建的服务器发出的响应值。但是,即使传递给它的值不相等,assert 也是 returning true。 让我举个例子:
describe('Tests', function() {
it('Simple Query', function() {
// assert.equal(2,3); //returns false
controller1.simpleQuery(true, 4, "hello", null, function(error, response, context) {
assert.equal(2,3); //returns true
});
});
});
好的,问题来了:这段代码中的两个 assert 语句都应该 return false 因为 2 不等于 3。但是,现在 simpleQuery() 函数调用之前的 assert 语句是 returning false(这是正确的行为)。 simpleQuery() 调用中的断言语句 return 为真。
老实说,这真的很奇怪,我似乎无法弄清楚为什么要这样做。谁能帮我解决这个问题?
问题是您的 simpleQuery
是异步的。结果,测试将在甚至调用回调之前完成。您需要使用 done
回调来显示 mocha
您的测试是异步的。
describe('Tests', function() {
it('Simple Query', function(done) {
// assert.equal(2,3); //returns false
controller1.simpleQuery(true, 4, "hello", null, function(error, response, context) {
assert.equal(2,3); //returns true
done();
});
});
});