国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

使用vitest時出現(xiàn)的TypeError: default不是一個函數(shù)
P粉817354783
P粉817354783 2023-10-29 18:05:17
0
1
977

我正在使用 vitest 在我的 vue 應(yīng)用程式中進(jìn)行一些單元測試。 我已經(jīng)編寫了一些測試,但它們失敗並顯示錯誤訊息:「TypeError:預(yù)設(shè)值不是函數(shù)」。 但我在程式碼中沒有使用名為 default() 的函數(shù)。

import getInfo from './info';

vi.mock('axios', () => {
    return {
        default: {
            get: vi.fn()
        }
    }
});

test('fn getInfo() should request api with axios.get url', async () => {
    const spyAxios = vi.spyOn(axios, 'get');
    await getInfo('1234');
    expect(spyAxios).toHaveBeenCalledWith(`${process.env.VUE_APP_API_BASE_URL}`);
});

如果我接著執(zhí)行 npm run test 結(jié)果如下:

FAIL  src/api/info/info.test.js > fn getInfo() should request api with axios.get url
TypeError: default is not a function
 ? src/api/info/info.test.js:61:22
     59| test('fn getInfo() should request api with axios.get url', async () => {
     60|     const spyAxios = vi.spyOn(axios, 'get');
     61|     await getInfo('1234');
       |                  ^
     62|     expect(spyAxios).toHaveBeenCalledWith(`${process.env.VUE_APP_API_BASE_URL}`);
     63| });

info.ts 檔案如下所示:

import { useLoginStore } from "../../store/LoginStore";
import axios from "axios";

// eslint-disable-next-line
export async function getInfo(param: string) : Promise<any> {
    const loginStore = useLoginStore();
    axios.defaults.headers.common = {'Authorization': `Bearer ${loginStore.accessToken}`};
    
    const request = await axios.get(
        process.env.VUE_APP_API_BASE_URL
    );

    if (request?.status == 200) {
        return request.data;
    }
    else {
        return null;
    }
}

有人知道這是怎麼回事嗎?

P粉817354783
P粉817354783

全部回覆(1)
P粉985686557

傳回物件中的default屬性不是函數(shù)(default: {...})。相反,您將返回如下??內(nèi)容:

vi.mock('axios', () => ({
  default: () => ({
    get: vi.fn(),
    post: vi.fn(),
  }),
}));
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板