所有这些尝试都引发错误:
var testUtils=require('@vue/test-utils'), Vue=require('vue');
require('jsdom-global')();
testUtils.mount(Vue.component('test', {
template:'<div>test</div>'
}));
testUtils.mount(Vue.component('test', {
render:function(el) { return el('div', 'test'); }
}));
testUtils.mount({
template:'<div>test</div>'
});
@ vue / test-utils / dist / vue-test-utils.js:2471
var componentInstance = node.child;
TypeError:无法读取未定义的属性“ child”
我也尝试过使用localVue,而不是mount来使用shallowMount,并尝试在全局注册Vue.options.components.test(以及我想到的其他一些东西)之后通过,但没有任何效果。
没有使用单一文件组件,webpack和/或其他使事情变得不必要且需要构建过程的技术,是否有任何方法可以测试vue组件?还是这仅仅是缺乏文档?
您需要先加载DOM,然后再进行@vue/test-utils
。将代码更改为此:
require('jsdom-global')();
var testUtils=require('@vue/test-utils'), Vue=require('vue');
// ...
Jest可能在需要Vue之前在某些脚本中加载了JSDOM,这就是为什么它可以在其中工作的原因。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句