Nuxt.js 中的 Jest 全局插件

Posted

技术标签:

【中文标题】Nuxt.js 中的 Jest 全局插件【英文标题】:Jest Global Plugin in Nuxt.js 【发布时间】:2021-06-04 19:20:25 【问题描述】:

我正在尝试模拟一个在 jest 单元测试中的 created() 挂钩上运行的插件,但是,我不断返回 TypeError: this.$translations is not a function,这导致我的所有测试都因该错误而失败:

Component 文件内:

created () 
  this.$translations(this.page.translations)

Test 文件内:

import  translations  from '~/helpers/plugins/translations'

const localVue = createLocalVue()
localVue.use(translations)

const wrapper = shallowMount(TestComponent, 
  localVue,
  propsData
)

我做错了吗?

【问题讨论】:

【参考方案1】:

我已经解决了这个问题,我要做的是使用mocks 模拟this.$translations() 作为一个函数:

const wrapper = shallowMount(TBase, 
  localVue,
  mocks:  $translations: () =>  ,
  propsData
)

【讨论】:

以上是关于Nuxt.js 中的 Jest 全局插件的主要内容,如果未能解决你的问题,请参考以下文章

使用 jest 测试 nuxt.js 应用程序时访问 `process.env` 属性

如何使用 jest 在 nuxt.js 中测试 head()

nuxt实现全局状态管理导航切换优化

Nuxt.js - 全局导入自定义 NPM 包

使用 Jest 测试 NUXT.js 和 Vue.js 应用程序。获取“在 mapState() 中找不到 [vuex] 模块命名空间”和“[vuex] 未知操作类型”

在 Nuxt JS 中导入 SVG 时,Jest 中出现“[Vue 警告]:无效的组件定义”