我使用Chai的断言检查从我所做的服务器返回的响应值。但是,即使传递给它的值不相等,assert也会返回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
});
});
});
好的,这就是问题:这个代码中的断言语句都应该返回false,因为2不等于3.但是,现在在simpleQuery()函数调用之前的assert语句返回false(是正确的行为)。而simpleQuery()调用中的assert语句返回true。
这真的很奇怪,我似乎无法弄清楚它为什么要这样做。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:3)
问题是您的simpleQuery
是异步的。因此,测试将在甚至调用回调之前完成。您需要使用mocha
回调来显示done
您的测试是异步的。
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();
});
});
});