在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ promise如何使用mocha、sinon進(jìn)行測試?

promise如何使用mocha、sinon進(jìn)行測試?

問題標(biāo)題

如何借助mocha/chai、sinon測試promise?

問題說明

假設(shè)封裝了一個函數(shù),發(fā)起異步請求任務(wù),成功執(zhí)行onSuccess、失敗執(zhí)行onError。同時為了避免異步任務(wù)依賴外部環(huán)境,使用sinon做替身。這種情況是否需要編寫測試代碼,如果需要該如何編寫?

相關(guān)代碼

// 如何測試?
// 發(fā)出異步任務(wù),成功執(zhí)行onSuccess,失敗執(zhí)行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)
  })
}
回答
編輯回答
赱丅呿

mocha本來就支持異步的, 下面是參考代碼

var myModule = require('../') //引入你的模塊
describe('測試myModule', function () {
    it('成功執(zhí)行onSuccess', function (done) {
        myModule(function(){done()},function(){done('執(zhí)行邏輯錯誤')});
    }
    it('出錯執(zhí)行onError', function (done) {
        myModule(function(){done('執(zhí)行邏輯錯誤')},function(){done()});
    }
}
2017年3月10日 17:09