promise如何使用mocha、sinon进行测试?

问题标题

如何借助mocha/chai、sinon测试promise?

问题说明

假设封装了一个函数,发起异步请求任务,成功执行onSuccess、失败执行onError。同时为了避免异步任务依赖外部环境,使用sinon做替身。这种情况是否需要编写测试代码,如果需要该如何编写?

相关代码

// 如何测试?// 发出异步任务,成功执行onSuccess,失败执行onErrormodule.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)
  })
}


哆啦的时光机
浏览 885回答 1
1回答

红颜莎娜

mocha本来就支持异步的, 下面是参考代码var myModule = require('../') //引入你的模块describe('测试myModule', function () {     it('成功执行onSuccess', function (done) {         myModule(function(){done()},function(){done('执行逻辑错误')});     }     it('出错执行onError', function (done) {         myModule(function(){done('执行逻辑错误')},function(){done()});     } }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript