我對摩卡感到沮喪的一件事是,當測試失敗時,它們不會給出失敗線的實際錯誤消息,而是僅以結束錯誤:超時超過2000毫秒。確保在此測試中正在調用done()回調。使摩卡測試顯示實際的錯誤
取本試驗中,例如:
describe("myTest", function() {
it("should return valid JSON.", function(done) {
api.myCall("valid value").then(function(result) {
console.log(result);
var resultObj = JSON.parse(result);
assert.isFalse(resultObj.hasOwnProperty("error"), "result has an error");
done();
});
});
});
的輸出是:
myTest
{"error":null,"status":403}
1) should return valid JSON.
0 passing (2s)
1 failing
1) myTest should return valid JSON.:
Error: timeout of 2000ms exceeded. Ensure the done() callback is being called in this test.
的assert.isFalse失敗,但應該被顯示的消息( 「結果有錯誤」 )不顯示。事實上,處理似乎停在那裏,因爲done()永遠不會被調用。將該行取出並且測試通過,因爲調用了done()。
那麼,我錯過了什麼?爲什麼摩卡測試的行爲如此?我使用的實際測試庫:
var assert = require("chai").assert;
有誰知道我做錯了,或者爲什麼這種行爲這種方式?