Javascript 笑话:Vue组件可以';找不到模拟函数

Javascript 笑话:Vue组件可以';找不到模拟函数,javascript,unit-testing,vue.js,jestjs,Javascript,Unit Testing,Vue.js,Jestjs,我正在模拟一个ES6类,该类在我的Vue组件中使用: export default class DataUploadApi { // Get uploaded files static async getUploadedFiles() : Promise<Object> { return WebapiBase.getAsync({uri: DATA_UPLOAD_ENPOINTS.FILES}); } } 这个测试通过了。但是,在快照中,我可

我正在模拟一个ES6类,该类在我的Vue组件中使用:

export default class DataUploadApi {
    // Get uploaded files
    static async getUploadedFiles() : Promise<Object> {
        return WebapiBase.getAsync({uri: DATA_UPLOAD_ENPOINTS.FILES});
    }
}
这个测试通过了。但是,在快照中,我可以看到调用的API失败,并显示以下错误消息:

<p>
    _DataUploadService.default.getUploadedFiles is not a function
</p>

_DataUploadService.default.getUploadedFiles不是函数


我对函数mock做了什么错误?提前谢谢

我的代码似乎有一些问题:

模仿API 使用内部
模拟实现
似乎会导致问题,如果不需要额外的模拟功能,则不需要

jest.mock('@/apps/gb-data/webapi/DataUploadService', () => ({
    getUploadedFiles() {
        return Promise.resolve({ uploaded_files: {} });
    },
}));
对测试的更改 和
nextTick
都是必需的

 it('with uploaded files', async () => {
     const wrapper = mount(FileDownloadList, {
         stubs: fileDownloadListStubs,
     });
     await flushPromises();
     await wrapper.vm.$nextTick();
     expect(wrapper).toMatchSnapshot();
});

我的代码似乎有一些问题:

模仿API 使用内部
模拟实现
似乎会导致问题,如果不需要额外的模拟功能,则不需要

jest.mock('@/apps/gb-data/webapi/DataUploadService', () => ({
    getUploadedFiles() {
        return Promise.resolve({ uploaded_files: {} });
    },
}));
对测试的更改 和
nextTick
都是必需的

 it('with uploaded files', async () => {
     const wrapper = mount(FileDownloadList, {
         stubs: fileDownloadListStubs,
     });
     await flushPromises();
     await wrapper.vm.$nextTick();
     expect(wrapper).toMatchSnapshot();
});