为了账号安全,请及时绑定邮箱和手机立即绑定

Jest 抛出关于缺少全局函数的错误(vue.prototype)

Jest 抛出关于缺少全局函数的错误(vue.prototype)

凤凰求蛊 2023-01-06 15:51:43
我正在尝试为我的 Vue 应用程序设置单元测试。我正在使用 Jest。我已经安装了一个组件,我想对其运行测试。这个组件使用一个名为 aao 的全局函数 (Vue.prototype),它在我的测试中无法运行。错误信息:console.error node_modules/vue/dist/vue.runtime.common.dev.js:621[Vue warn]: Error in beforeMount hook: "TypeError: this.$aao is not a function"found in---> <MyProfile>       <Root>示例.spec.ts:import editUser from '@/components/forms/editUser.vue';import TestComponent from '@/pages/user/UserMyProfile.vue';import { shallowMount } from '@vue/test-utils';import { expect } from 'chai';import 'jest';describe('AppLoadingScreen', () => {    let component;    beforeEach(() => {        component = shallowMount(TestComponent);    });    it('should render Spinner on mount', () => {        expect(component.find(editUser).exists()).to.be.true;    });});AAO功能:export function dbRequest(    method: 'get' | 'put' | 'post' | 'delete',    endpoint: string,    data: any,    headers?: any,    responseType?: 'blob' | 'json') {    return new Promise<any>((resolve, reject) => {        ...    });}Vue.prototype.$aao = dbRequest;我怎样才能确保测试实用程序知道 this.$aao?
查看完整描述

1 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

解决了!


将我的 .spec.ts 文件更改为 .spec.js,并将内容更改为如下内容:


import { mount, createLocalVue, shallowMount } from '@vue/test-utils';

import * as All from 'quasar';  

import dbRequest from 'src/boot/aao';  


const { Quasar, date } = All;


const components = Object.keys(All).reduce((object, key) => {

    const val = All[key];

        if (val && val.component && val.component.name != null) {

        object[key] = val;

    }

    return object;

}, {}); 


describe('Mount Quasar', () => {

    const localVue = createLocalVue();

    localVue.use(Quasar, { components });

    // Here's the solution, the global functions need to be used by the local vue component

    localVue.use(dbRequest);


    const wrapper = mount(UserMyProfile, {

        localVue,

    });

    const vm = wrapper.vm;

    // Tests here

}

在此处阅读更多信息: https ://vue-test-utils.vuejs.org/guides/common-tips.html#applying-global-plugins-and-mixins


查看完整回答
反对 回复 2023-01-06
  • 1 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信