0

我的 vue 代码调用element-ui模块:

// in main.js
import { Notification } from "element-ui";

起初,我的测试是抛出

无法从“test.js”中找到模块“元素”

所以我用

jest.mock('element-ui', () => ({
  Element: jest.fn(),
}))

但是它仍然会出错

无法从“test.js”中找到模块“element-ui/lib/theme-default/element.css”

我不知道如何通过这个。

有任何想法吗 ?谢谢。


如果我在 test.js 中导入 element-ui 组件:

ReferenceError: document is not defined

      at Object.<anonymous> (node_modules/element-ui/lib/utils/dom.js:22:39)
      at Object.<anonymous> (node_modules/element-ui/lib/utils/popup/popup-manager.js:9:12)
      at Object.<anonymous> (node_modules/element-ui/lib/utils/popup/index.js:14:21)

(Jest 21.2,vue-test-utils 1.0.0)

4

2 回答 2

1

我所做的是在每个测试文件之前注册所有 Element-UI 组件。

jest.config.js ( https://jestjs.io/docs/en/configuration#setupfiles-array )

module.exports = { ..., setupFiles: ['./jest/eachTest.js'], ... }

每个Test.js

import Vue from 'vue' import Element from 'element-ui' Vue.use(Element, {})

于 2020-03-06T01:35:33.123 回答
0

这有帮助:https ://github.com/eddyerburgh/vue-hackernews/

我现在在 main.js 中导入所有与 element-ui 相关的组件,并模拟调用其组件之一的每个方法:

beforeEach(() => {
    // Mock this method that calls a Notification element-ui component.
    vm.notifyWarning = jest.fn();
  })
于 2018-03-05T12:09:56.723 回答