【发布时间】:2021-05-25 20:28:29
【问题描述】:
我正在与 Jest 一起测试 vue 组件。我不想在我的某些函数中测试 axios 调用,因为我希望在不同的地方测试这些调用。
按照我的文件设置方式,我将一个构建 axios 调用的函数导入到我的组件中,如下所示:
我的组件:
import { RepositoryFactroy } from '../services/RepositoryFactory';
const ModelRepo = RepositoryFactory.get('model');
export default {
methods: {
async getModelItems() {
ModelRepo.get(); //calls an axios get for all matching records, needs to be mocked
OtherCodeThatNeedsToBeRun(); //this needs to run
}
}
}
存储库工厂会为您要查找的任何内容(在本例中为“模型”)获取匹配的存储库,并检查相应的存储库,例如 ModelRepository.js 以获取具有 axios 调用所需的任何信息的函数列表,然后将其添加到Repository.js 中声明的 axios 实例中。不确定这是否是必要的信息,但只是想彻底。
假设我想在 getModelItems() 方法中在 Component.vue 上测试一些东西,而不运行我导入的 axios 调用。如何让 Jest 忽略 ModelRepo.get() 呼叫?我是否必须为此创建一个笑话模拟?
编辑
需要明确的是,我需要 getModelItems() 来运行其中的其他代码,并且只需要在该方法中替换 ModelRepo.get() 的功能
【问题讨论】:
标签: javascript vue.js jestjs axios