如何为所有测试文件的挂载组件全局配置Mock函数与变量?
全局Mock Vue组件测试中的公共变量
当然可以实现,不用在每个测试用例里重复声明mock变量,以下是两种常用的全局配置方案:
方案1:通过Vue Test Utils的全局配置
在测试全局入口文件(比如jest.setup.js)里添加全局mock配置:
import { config } from '@vue/test-utils' // 全局注册需要Mock的变量 config.mocks.$GlobalVarForAllComponents = '你的Mock值'
配置完成后,所有使用shallowMount或mount挂载的组件都会自动携带这个Mock变量,无需在每个测试的options中重复写mocks配置。
方案2:基于localVue全局挂载
如果项目中使用localVue隔离Vue实例,可以在初始化localVue时将Mock变量挂载到其原型上:
import { createLocalVue } from '@vue/test-utils' const localVue = createLocalVue() // 将Mock变量挂载到localVue原型 localVue.prototype.$GlobalVarForAllComponents = '你的Mock值'
后续测试用例直接使用这个全局初始化好的localVue即可:
it('test case 1', () => { wrapper = shallowMount(Login, { store, localVue }) expect(true).toBe(true) })
补充说明
如果某个测试需要单独覆盖全局Mock的值,只需在当前测试的mocks选项中重新声明该变量即可,局部配置会优先于全局配置生效。
内容的提问来源于stack exchange,提问作者Adam
相关产品推荐
相关产品推荐

