promise如何使用mocha、sinon进行测试?
问题标题
如何借助mocha/chai、sinon测试promise?
问题说明
假设封装了一个函数,发起异步请求任务,成功执行onSuccess、失败执行onError。同时为了避免异步任务依赖外部环境,使用sinon做替身。这种情况是否需要编写测试代码,如果需要该如何编写?
相关代码
// 如何测试?
// 发出异步任务,成功执行onSuccess,失败执行onError
module.exports = function (onSuccess, onError) {
var p = new Promise(function (resolve, reject) {
setTimeout(function () {
resolve('ok')
}, 1000)
})
p.then(function (response) {
onSuccess(response)
}).catch(function (error) {
onError(error)
})
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
mocha本来就支持异步的, 下面是参考代码
main.js
:main.test.js
:单元测试结果+测试覆盖率报告:
你代码中
promise
没有reject
的部分,所以始终是resolve
的,只有成功回调函数的测试用例