椅子's断言工作不正常

Chai's Assert Not Working Properly

本文关键字:断言 工作 不正常 椅子      更新时间:2023-09-26

我使用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。

这真的很奇怪,我似乎不明白为什么它会这样做。有人能帮我弄明白吗?

问题是您的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();
        });
    });
});