Javascript 测试功能无效 我在MoCa测试期间使用承诺等待脸谱网API响应。我想知道为什么expect函数实际上没有检查数据是否包含在响应中
我在控制台中看到Javascript 测试功能无效 我在MoCa测试期间使用承诺等待脸谱网API响应。我想知道为什么expect函数实际上没有检查数据是否包含在响应中,javascript,mocha.js,Javascript,Mocha.js,我在控制台中看到resolve,这表明图形调用已工作,承诺已解决,但测试通过,即使事件未在expect(data).to.include语句中包含随机数据。当承诺解决时,我如何测试响应 var promise = new Promise(function(resolve, reject) { var eventFB1 = graph.get('132166232459578/posts', {limit: 1, access_token: 't0k3n' });
resolve
,这表明图形调用已工作,承诺已解决,但测试通过,即使事件未在expect(data).to.include
语句中包含随机数据。当承诺解决时,我如何测试响应
var promise = new Promise(function(resolve, reject) {
var eventFB1 = graph.get('132166232459578/posts',
{limit: 1,
access_token: 't0k3n'
});
if (typeof eventFB1 !== 'undefined') {
resolve(eventFB1);
console.log('resolve');
}
else {
reject(Error("It broke"));
console.log('reject');
}
});
return promise.then(function(data) {
expect(data).to.include( 'Event name: Testing London eveng 23498723rstni' );
console.log(data);
});
您需要将done作为参数传递给测试,然后在“then”方法中调用它。done参数告诉mocha指定的测试已经完成
it('should have the included string for data', (done) => { // <-- add done as argument
var promise = new Promise(function(resolve, reject) {
var eventFB1 = graph.get('132166232459578/posts',
{
limit: 1,
access_token: 't0k3n'
});
if (typeof eventFB1 !== 'undefined') {
resolve(eventFB1);
console.log('resolve');
}
else {
reject(Error("It broke"));
console.log('reject');
}
});
return promise
.then(function(data) {
expect(data).to.include( 'Event name: Testing London eveng 23498723rstni' );
console.log(data);
done(); // <-- call done
});
}
it('should have included string for data',(done)=>{//这在文档中有介绍。文档中介绍了很多内容,但对每个人来说都不明显,因此他们在这里寻求支持。这不是一种有效的方法吗?有趣的是,文档似乎将对我有用的答案(以下)描述为错误的:“在Mocha v3.0.0及更新版本中,返回承诺并调用done()将导致异常,因为这通常是一个错误:"我不是想侮辱你,但是“异步代码”是文档目录中的第四个条目。它就在主页的折叠下面。对文档最粗略的检查应该会发现这一点。更不用说谷歌搜索“摩卡异步测试”时弹出的所有优秀内容了。我在这里问了一个明显的问题t次,但至少有礼貌地说“哎呀,我的坏”。我不认为这是一种侮辱,只是说我已经浏览了文档,发现了一条似乎适合我的用例的语句(即承诺
),并警告不要使用done()
。你肯定能看到我的困惑吗?不知道为什么我对这个答案投了反对票。耸耸肩: