首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue.js 3:在使用外部库运行单元测试时,未使用挂载定义Vue

Vue.js 3:在使用外部库运行单元测试时,未使用挂载定义Vue
EN

Stack Overflow用户
提问于 2022-08-24 12:58:41
回答 1查看 40关注 0票数 0

我目前在运行单元测试时遇到了以下错误:

代码语言:javascript
复制
ReferenceError: Vue is not defined

> 10 | import hljsVuePlugin from '@highlightjs/vue-plugin';
     | ^

以下是我的组件代码:

代码语言:javascript
复制
<template>
  <div>
    <highlightjs autodetect :code="'hello world'" />
  </div>
</template>

<script lang="ts">
import { defineComponent } from 'vue';
import hljsVuePlugin from '@highlightjs/vue-plugin';

export default defineComponent({
  components: {
    highlightjs: hljsVuePlugin.component,
  },
});
</script>

在我的测试文件中,我只是试图挂载这个组件:

代码语言:javascript
复制
const wrapper = mount(FooBlah, {
  global: {
    stubs: {
      highlightjs: {
        template: '<div />',
      },
    },
  },
});

以下是我的库版本:

代码语言:javascript
复制
"vue": "^3.2.33",
"@highlightjs/vue-plugin": "^2.1.2",
"highlight.js": "^11.6.0",
"@vue/cli-plugin-unit-jest": "~5.0.4",
"@vue/test-utils": "^2.0.2",
"@vue/vue3-jest": "^27.0.0",

有没有办法让他简单地忽略highlightjs ( jest.config中的组件)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-25 07:08:29

正如评论中提到的那样,这解决了我的问题:

代码语言:javascript
复制
jest.mock('@highlightjs/vue-plugin', () => ({
  hljsVuePlugin: {
    component: jest.fn(),
  },
}));
const wrapper = mount(FooBlah, {
  global: {
    stubs: {
      highlightjs: {
        template: '<div />',
      },
    },
  },
})

您可以在这里找到更多信息:How can I mock an ES6 module import using Jest?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73473639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档