Javascript 如何模拟axios api调用以根据输入返回不同的值?

Javascript 如何模拟axios api调用以根据输入返回不同的值?,javascript,testing,mocking,jestjs,axios,Javascript,Testing,Mocking,Jestjs,Axios,假设有一个函数,除了其他任务外,还可以使用axios进行一些api调用。在测试此函数时,是否有方法模拟所有axios api调用,并根据输入指定调用的返回值。例如,假设要测试的函数如下: function someFunction (a, b, c) { const apiReturnA = axiosApiCall(a) const returnB = b + 1 const apiReturnC = axiosApiCall(c) return [apiRet

假设有一个函数,除了其他任务外,还可以使用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
时,不要执行该函数,只需基于该函数的输入返回一个值即可。如何做到这一点?

您可以通过闭包注入
Axiosapacall

函数apiWrapper(axiosApiCall){
返回函数someFunction(a、b、c){
常数APIRTURNA=axiosApiCall(a)
常数返回b=b+1
常数apirurnc=axiosApiCall(c)
返回[apiReturnA、returnB、apiReturnC]
}
}
const testApiCall=函数(输入){
返回输入*2;
}
设someFunction=apiWrapper(testApiCall);
log(someFunction(1,2,3));