Javascript 使用jquery promise测试代码时出现Mocha测试错误
我正在尝试测试以下代码。服务器基本上拒绝了这个请求,因为一些参数并没有按照api规范的要求发送。Javascript 使用jquery promise测试代码时出现Mocha测试错误,javascript,tdd,mocha.js,chai,Javascript,Tdd,Mocha.js,Chai,我正在尝试测试以下代码。服务器基本上拒绝了这个请求,因为一些参数并没有按照api规范的要求发送。 Api.createRecord在引擎盖下使用jquery.ajax,调用时返回jquery承诺 describe("Creating test record with incorrect data", ()=> { const params = {tId:"12323","col":"colValue"}; it('Should not create new rec
Api.createRecord
在引擎盖下使用jquery.ajax
,调用时返回jquery
承诺
describe("Creating test record with incorrect data", ()=> {
const params = {tId:"12323","col":"colValue"};
it('Should not create new record', (done) => {
const result = Api.createRecord(params);
console.log(result);
expect(result)
.to.eventually.equal(null)
.notify(done);
});
});
当我运行这段代码时,我得到以下错误
Error: done() invoked with non-Error: {"readyState":0,"status":0,"statusText":"SyntaxError"}
at mightThrow (node_modules/jquery/dist/jquery.js:3583:29)
at Window.process (node_modules/jquery/dist/jquery.js:3651:12)
at Timeout.callback [as _onTimeout] (node_modules/jsdom/lib/jsdom/browser/Window.js:524:19)
我无法找出问题所在。无论是我的代码中还是其他地方存在问题
这就是我发送ajax请求的方式
sendRequest(URL, dataToSend) {
return $.ajax({
type : 'POST',
url : URL,
crossDomain : true,
data : JSON.stringify(dataToSend),
dataType : 'json'
}).fail((responseData) => {
if (responseData.responseCode) {
console.error(responseData.responseCode);
}
});
},
上面的代码中是否存在处理失败而不是抛出的问题?在仔细阅读mocha文档后,我终于找到了解决方案 在Mocha v3.0.0及更新版本中,返回承诺并调用done()将 导致异常,因为这通常是一个错误: 我把我的测试用例改成了这个,它成功了
expect(result).to.be.rejected;
expect(result).to.be.rejected;