首页 > 解决方案 > 如何在返回 Axios 响应的异步函数上使用 Sinon Spy

问题描述

我有一个嵌套函数,我想在 (helper.postAlbum) 上使用 sinon.spy 来提取它的返回值。但是,当console.log(spy.returnValues[0])我得到一个未定义的。

这是一个粗略的设置

专辑.js

const createAlbum = async (pictures) {
   let promiseArray = await Promise.all(pic.map => {
       return helper.postAlbum(pic, pic.catergory)
})
}

module.exports = {createAlbum}

助手.js

const postAlbum = async (picture, catergory) => {
   const options = {
  headers: {'X-Custom-Header': 'value'}
};

 return axios.post('/save', { picture: picture, category:category }, options);
}

测试.js

const sinon = require('sinon');
const helper = require('./helper');

describe('album create',  ()=> {

  let spy = sinon.spy(helper, 'postAlbum');

  chai.request(app)
      .post('/create')
      .end(async (err, res) => {
        expect(spy).to.have.been.calledOnce;
        expect(spy.returnValues[0]).to.have.property('date').to.not.be.null;

})
})

标签: node.jschaisinon

解决方案


推荐阅读