柴的断言不正常

时间:2016-08-18 05:47:19

标签: javascript mocha assert chai

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

这真的很奇怪,我似乎无法弄清楚它为什么要这样做。任何人都可以帮我解决这个问题吗?

1 个答案:

答案 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();

        });

    });
});