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

假设有一个功能,在其他任务中,使用 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被调用时,不要执行该函数,只需根据该函数的输入返回一个值。怎么能做到这一点?


桃花长相依
浏览 199回答 1
1回答

尚方宝剑之说

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
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript