Unit testing vue.js单元测试-已安装挂钩中出错
我使用Jasmine作为单元测试框架,我想知道如何知道vue是否正确安装。是否有一个函数、一个来自VueJS的API、一个收据来了解视图的状态 实际上..单元测试通过了,但是在控制台(终端或浏览器下)我得到了以下错误:错误日志:'[Vue warn]:挂载钩子中的错误:(在xxxx中找到)-ReferenceError:$未定义' 那么我希望我的单元测试在这种错误上失败,而不是通过 下面是代码的快速快照:Unit testing vue.js单元测试-已安装挂钩中出错,unit-testing,jasmine,vue.js,Unit Testing,Jasmine,Vue.js,我使用Jasmine作为单元测试框架,我想知道如何知道vue是否正确安装。是否有一个函数、一个来自VueJS的API、一个收据来了解视图的状态 实际上..单元测试通过了,但是在控制台(终端或浏览器下)我得到了以下错误:错误日志:'[Vue warn]:挂载钩子中的错误:(在xxxx中找到)-ReferenceError:$未定义' 那么我希望我的单元测试在这种错误上失败,而不是通过 下面是代码的快速快照: describe("location component tests suite", ()
describe("location component tests suite", () => {
const getComponent = (data) => {
let vm = new Vue({
template : "<div>"
+ "<location"
+ " :data='data'"
+ " label='pick'"
+ " placeholder='placeholder'"
+ " required>"
+ "</location></div>",
data: {
data
}
});
return vm;
};
it("Validate mount", () => {
const data= { 'data' : { 'value' : 'VUE'} };
const vm = getComponent(data).$mount();
expect(vm.$el.querySelector('div.location-wrapper').getAttribute('class')).toBe('location-wrapper');
expect(vm.$el.querySelector('input').getAttribute('name')).toBe('pick');
});
});
description(“位置组件测试套件”,()=>{
常量getComponent=(数据)=>{
让vm=新Vue({
模板:“”
+ ""
+ "",
数据:{
数据
}
});
返回虚拟机;
};
它(“验证装载”,()=>{
常量数据={'data':{'value':'VUE'};
const vm=getComponent(数据)。$mount();
expect(vm.$el.querySelector('div.location-wrapper').getAttribute('class')).toBe('location-wrapper');
expect(vm.$el.querySelector('input').getAttribute('name')).toBe('pick');
});
});
谢谢大家! 您可能希望使用自v2.2.0
以来引入的API
let errorThrown = false;
errorhorn
)
errorThrown
切换为true
Vue.config.errorHandler = function (err, vm, info) {
console.log(info);
if(info.includes('mounted')) {
errorThrown = true;
}
};
expect
API检查errorshown
expect(errorThrown).toBe(false); // Test will fail here
这样,安装方法中发生的错误将被捕获,并迫使单元测试失败。组件的代码在这里可能更相关。我不想知道错误来自何处。。。我只是想知道是否有办法知道在.$mount()期间是否发生错误,因为单元测试没有失败。位置组件是一个复杂的组件,在这里不太相关。。。失败的原因与$(JQuery)有关,因为它不是组件构建的一部分。进口解决了这个问题。。。。我要寻找的是一种方法来捕获此类错误…在.$mount()期间,使我的测试失败,而不是通过。