【发布时间】:2020-03-20 00:37:31
【问题描述】:
在测试使用 Promise 的函数时,我遇到了 Mocha 返回错误结果的问题。不知道为什么它返回“未定义” - 被调用的函数 (testFunction()) 不应该在承诺完成之前返回。
测试:
it('test1', function() {
let testResult = testFunction();
assert.equal(testResult,'success');
});
承诺:
getPromise() {
return new Promise((resolve, reject) => {
resolve('success');
}
}
testFunction()
testFunction = () => {
getPromise().then(result => { return result}
).catch(error =>{ return error });
}
结果: AssertionError [ERR_ASSERTION]: undefined == 'success'
【问题讨论】:
-
result => return result语法无效。 -
修复了帖子中的语法,但在我的测试中已经正确 - 这不是问题。
-
问题是
testFunction没有返回任何东西,所以它默认返回undefined。那显然和"success"不一样。 -
怎么什么都不返回?它在 Promise 回调中有 return 语句。
-
我对 mocha 了解不多,但我体验过 Jest。对于承诺案例,我通常通过
async await
标签: javascript unit-testing mocha.js