桃花長(zhǎng)相依
2022-01-13 16:30:54
假設(shè)有一個(gè)功能,在其他任務(wù)中,使用 axios 進(jìn)行一些 api 調(diào)用。有沒有辦法在測(cè)試此函數(shù)時(shí)模擬所有 axios api 調(diào)用并根據(jù)輸入指定調(diào)用的返回值。例如,假設(shè)您要測(cè)試的功能是這樣的:function someFunction (a, b, c) { const apiReturnA = axiosApiCall(a) const returnB = b + 1 const apiReturnC = axiosApiCall(c) return [apiReturnA, returnB, apiReturnC]}我想測(cè)試someFunction并指定,每次axiosApiCall被調(diào)用時(shí),不要執(zhí)行該函數(shù),只需根據(jù)該函數(shù)的輸入返回一個(gè)值。怎么能做到這一點(diǎn)?
1 回答

尚方寶劍之說
TA貢獻(xiàn)1788條經(jīng)驗(yàn) 獲得超4個(gè)贊
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));
然后在您的真實(shí)代碼中,您只需傳入真實(shí)的 axiosApiCall
添加回答
舉報(bào)
0/150
提交
取消