假设有一个功能,在其他任务中,使用 axios 进行一些 api 调用。有没有办法在测试此函数时模拟所有 axios api 调用并根据输入指定调用的返回值。例如,假设您要测试的功能是这样的:function someFunction (a, b, c) { const apiReturnA = axiosApiCall(a) const returnB = b + 1 const apiReturnC = axiosApiCall(c) return [apiReturnA, returnB, apiReturnC]}我想测试someFunction并指定,每次axiosApiCall被调用时,不要执行该函数,只需根据该函数的输入返回一个值。怎么能做到这一点?
1 回答
尚方宝剑之说
TA贡献1788条经验 获得超4个赞
axiosApiCall您可以通过闭包注入:
function apiWrapper(axiosApiCall) {
return function someFunction (a, b, c) {
const apiReturnA = axiosApiCall(a)
const returnB = b + 1
const apiReturnC = axiosApiCall(c)
return [apiReturnA, returnB, apiReturnC]
}
}
const testApiCall = function(input) {
return input * 2;
}
let someFunction = apiWrapper(testApiCall);
console.log(someFunction(1,2,3));
然后在您的真实代码中,您只需传入真实的 axiosApiCall
添加回答
举报
0/150
提交
取消