vue.js - Vue单元测试-无法读取未定义的属性't'
问题描述
我正在使用 jest 运行 vue 单元测试来检查各个组件的输出。该组件使用 vuetify。
我创建了一个 vue 实例来挂载组件:
import myComponent from './MyComponent.vue';
import VueRouter from 'vue-router';
import Vuetify from 'vuetify';
describe('Component', () => {
let wrapper;
const router = new VueRouter({
base: '/ui/',
routes: [
{
name: 'myRoute',
path: '/route-to-my-component',
component: myComponent
},
]
});
beforeEach(() => {
const localVue = createLocalVue();
localVue.use(VueRouter);
localVue.use(Vuetify);
wrapper = mount(myComponent, {
localVue: localVue,
router
});
});
it('contains a container', () => {
expect(wrapper.contains('v-container')).toBe(true);
})
});
我希望这个测试能够通过,但我得到的是TypeError: Cannot read property 't' of undefined
.
解决方案
为了在 vuetify 之上运行 vue 单元测试,需要一些(有些随机的)东西:
根据此评论,避免使用 createLocalVue() 。
一些组件(如自动完成)需要
$vuetify.lang
并被$vuetify.theme
模拟
您的规格应如下所示:
import Vuetify from 'vuetify';
import Vue from 'vue';
Vue.use(Vuetify);
it('contains a container', () => {
const wrapper = mount(FreeAutocomplete, {
created() {
this.$vuetify.lang = {
t: () => {},
};
this.$vuetify.theme = { dark: false };
}
});
expect(wrapper.contains('v-container')).toBe(true);
})
推荐阅读
- python-3.x - 使用最近的邻居来获取 3 个没有目标变量的最近邻居
- javascript - 将 URL 结构从 /blog-post.php?id_blog_post=852 更改为 /unblur-course-hero
- git - 为什么我自己在 git 上推送的代码显示为来自其他人?
- django - 如何使用 EmailBackend 修改的后端测试 EmailMessage .send()
- c++ - 静态变量应该在哪里声明
- css - 将悬停应用于父类的多级子级
- react-native - 如何在 React Native 中管理内存?
- javascript - 开发表情符号组件
- javascript - 开玩笑:无法窥探该属性,因为它不是函数;给定的未定义
- android - Android Studio 代码显示为红色。但它运行成功