Vue.js 测试在表单上使用veevalidate的表单

Vue.js 测试在表单上使用veevalidate的表单,vue.js,mocha.js,chai,vee-validate,Vue.js,Mocha.js,Chai,Vee Validate,我使用vee validate 3.0.11版验证我的表单,如下所示 登录 我写了一些关于柴和摩卡的测试 在我的测试中,我需要找到按钮 但是,当我为find按钮使用find方法时,validation observer标记之间的所有html标记都不会加载到我的包装器中。 我的测试代码是: //我将其更改为shallowMount以装载,但存在问题, //mount不会在validation observer标记之间呈现任何内容 const wrapper=mount(LoginView,{s

我使用vee validate 3.0.11版验证我的表单,如下所示


登录
我写了一些关于柴和摩卡的测试 在我的测试中,我需要找到按钮 但是,当我为find按钮使用find方法时,
validation observer
标记之间的所有html标记都不会加载到我的包装器中。 我的测试代码是:

//我将其更改为shallowMount以装载,但存在问题,
//mount不会在validation observer标记之间呈现任何内容
const wrapper=mount(LoginView,{sync:false});
描述('Login.vue',()=>{
它('一些文本,()=>{
log(wrapper.html());
//“我的日志”包括除验证观察者标记之间的标记以外的所有标记
});
});

有人能告诉我如何使用warraper.find()找到我的按钮吗

您正在尝试浅装一个需要安装的组件,以便安装。如果您想同时忽略
ValidationProvider
,您可以提供一个假的,如下所示

ContactForm.vue


生存还是毁灭

{{错误[0]} 从“vee validate”导入{ValidationProvider}; 导出默认值{ 姓名:“联系方式”, 组成部分:{ 验证提供程序 }, 数据:()=>({ 值:“” }) };
ContactForm.test.js

从“@vue/test-utils”导入{shallowMount,createLocalVue};
从“/ContactForm”导入ContactForm;
从“/FakeValidationProvider”导入FakeValidationProvider;
test(“test shallow mount呈现验证提供程序内部的内容”,async()=>{
const localVue=createLocalVue();
var wrapper=shallowMount(ContactForm{
存根:{
ValidationProvider:FakeValidationProvider
},
localVue
});
expect(wrapper.text()).toContain(“是,还是不是”);
});
FakeValidationProvider.vue


导出默认值{
名称:“FakeValidationProvider”,
数据(){
返回{
错误:[]
};
}
};

除了错误之外,您还可以使用任何其他需要的参数来扩展插槽。如果您还想使这些参数成为动态的,请查看您正在尝试浅装一个需要安装的组件,以便安装。如果您想同时忽略
ValidationProvider
,您可以提供一个假的,如下所示

ContactForm.vue


生存还是毁灭

{{错误[0]} 从“vee validate”导入{ValidationProvider}; 导出默认值{ 姓名:“联系方式”, 组成部分:{ 验证提供程序 }, 数据:()=>({ 值:“” }) };
ContactForm.test.js

从“@vue/test-utils”导入{shallowMount,createLocalVue};
从“/ContactForm”导入ContactForm;
从“/FakeValidationProvider”导入FakeValidationProvider;
test(“test shallow mount呈现验证提供程序内部的内容”,async()=>{
const localVue=createLocalVue();
var wrapper=shallowMount(ContactForm{
存根:{
ValidationProvider:FakeValidationProvider
},
localVue
});
expect(wrapper.text()).toContain(“是,还是不是”);
});
FakeValidationProvider.vue


导出默认值{
名称:“FakeValidationProvider”,
数据(){
返回{
错误:[]
};
}
};

除了错误之外,您还可以使用任何其他需要的参数来扩展插槽。如果您还想使这些参数成为动态的,请检查

,可能是因为您使用的是
shallowMount
,而不是
mount
,您应该始终使用
mount
,因为它以测试运行时间为代价提供更可靠的输出。@logaretm我也尝试
mount
,但它仍然不会在
validation observer
tag之间呈现html,因为呈现是异步的,所以尝试在装载后立即使用
flush promises
,您可以在GitHub上检查vee验证测试。可能是因为您使用的是
shallowMount
而不是
mount
,您应该始终使用
mount
,因为它以测试运行时间为代价提供更可靠的输出。@logaretm我也尝试
mount
,但它仍然不会在
validation observer
tag之间呈现html,因为呈现是异步的,所以尝试在装载后立即使用
flush promises
,您可以在GitHub上检查vee验证测试。