node.js - 如何在返回 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;
})
})
解决方案
推荐阅读
- visual-studio-code - 构建颤振项目时如何将飞镖和颤振设置为默认值
- c# - 字典:属性或索引器不能分配给:它是只读的
- typescript - 如何将自定义标量导入 NestJs 中的 .graphql 文件?
- javascript - 自动复制当前标签 URL
- docker - 如何解决来自容器的错误
- python - 使用纸浆 cbc 求解器时,我可以设置约束的优先级吗?
- java - Java 使用 Steams VS TreeMap 对地图进行排序
- c++14 - 打印素数到 N
- reactjs - Material-UI CardContent 有一个 3px 底部填充
- math - 为什么 (1-t)^2 == (t-1)^2 在 SageMath 中?