使用jest测试Vue.js,类绑定失败

使用jest测试Vue.js,类绑定失败,vue.js,testing,jestjs,frontend,vue-component,Vue.js,Testing,Jestjs,Frontend,Vue Component,我正在尝试测试一个组件,它应该在用户单击时隐藏。功能在浏览器中工作,但在使用Jest进行自动测试期间测试失败 以下是测试: it(`如果局部变量设置为单击, 然后提示被隐藏“,()=>{ const wrapper=mount(组件,{props}); setData({was_clicked:true}); vm.$forceUpdate(); expect(wrapper.classes()).toContain(“hide”);//在此处失败 expect(wrapper.find(“.t

我正在尝试测试一个组件,它应该在用户单击时隐藏。功能在浏览器中工作,但在使用Jest进行自动测试期间测试失败

以下是测试:

it(`如果局部变量设置为单击,
然后提示被隐藏“,()=>{
const wrapper=mount(组件,{props});
setData({was_clicked:true});
vm.$forceUpdate();
expect(wrapper.classes()).toContain(“hide”);//在此处失败
expect(wrapper.find(“.toast”).isVisible()).toBe(false);
});
以下是组件:


...
导出默认值{
姓名:。。。,
数据(){
返回{
点击:错误,
};
},
道具:{
...
},
方法:{
隐藏(事件){
this.was_clicked=true;
},
},
};

我试图添加和删除
wrapper.vm.$forceUpdate()从测试中,我还测试了
wrapper.vm
wrapper.vm.$forceUpdate()的
nextTick
返回一个承诺。您应该
等待该承诺(并将函数标记为
async
),或者将它后面的
expect()
移动到
。然后
。这同样适用于
vm.$nextTick()。以下是与我一起工作的代码:

it(`如果本地变量设置为单击,则提示隐藏',async()=>{
const wrapper=mount(Tip,{props});
setData({was_clicked:true});
等待wrapper.vm.$nextTick();
expect(wrapper.classes()).toContain(“hide”);
expect(wrapper.isVisible()).toBe(false);
});