我想用 Jest 为 Nuxt.js 应用程序编写单元测试。但是我的某些组件使用了process.env
文件中声明的nuxt.config.js
属性。运行测试时,我收到此错误:
测试文件示例:
import Config from "../nuxt.config"
import { mount } from "@vue/test-utils"
import CleanMapButton from "../components/UI/buttons/CleanMapButton.vue"
beforeAll(() => {
process.env = Config.env
})
describe("Clean map button tests", () => {
it ('Always true test', () => {
expect(true).toBe(true)
})
})
答案 0 :(得分:1)
Imports are hoisted,因此import
语句都在process.env
中设置beforeAll
之前运行。
如果import
版的模块需要设置全局变量,则必须在测试开始运行之前将其设置 ,方法是在设置模块中进行设置并将Jest
配置为使用类似setupFilesAfterEnv
的程序来运行该设置模块。
另一方面,调用require
会在需要的时间运行代码 ,因此另一种方法是重构测试代码以在之后调用require('../components/UI/buttons/CleanMapButton.vue')
beforeAll
设置process.env
。
答案 1 :(得分:0)
您可以将它们设置为beforeAll
beforeAll(() => {
process.env = Object.assign(process.env, { get_settings: 'get_settings' });
});