Mocha:done()和回调错误

时间:2013-09-27 12:20:07

标签: javascript mocha chai

我的测试代码中有一部分是mocha,其中测试包含在getUserMedia的回调中:

it("should work without error", function() {
    navigator.getUserMedia({fake:true}, function(stream) {
        expect(3).to.equal(3);
        done(); // done is not defined if expect() is valid
    },console.error);
});

此处,未定义done(),但测试成功。

it("should NOT work", function() {
    navigator.getUserMedia({fake:true},function(stream) {
        expect(3).to.equal(4);
        done();
    },console.error);
});

在这里,我收到一个错误:

AssertionError: expected 3 to equal 4

,但是mocha界面仍然将测试显示为已验证。 (绿色勾号)

我做错了什么,或者做过()是否被错误?

1 个答案:

答案 0 :(得分:3)

你的功能应该完成一个论点。

it("should get done", function(done) {
  expect(3).to.equal(3);
  expect(3).not.to.equal(4);
});

但是,只有在测试中具有异步功能时才应使用done 如果没有,测试应该是这样的:

it("should not be async", function() {
  expect(3).to.equal(3);
}