我的测试代码中有一部分是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界面仍然将测试显示为已验证。 (绿色勾号)
我做错了什么,或者做过()是否被错误?
答案 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);
}