在使用Jest测试我的新VueJS项目时遇到了由道具验证引起的问题。
我的所有测试都有正确的模拟数据,从组件传递验证器。
我想在模拟wrong data
并将其传递给组件时测试情况。我知道当组件中的validator
返回false
,vue.common.js
console.error时:
console.error node_modules/vue/dist/vue.common.js:576
[Vue warn]: Invalid prop: custom validator check failed for prop "SOMETHING".
我想在我的Jest测试中发现这个错误,但我以下的方法都没有尝试过为我工作:
使用spyOn(console, 'error')
然后except(spy.calls.mostRecent()).toHaveBeenCalled()
。
在全球范围内注册console.*
,如global.console {...}
我不知道我现在应该尝试什么或者我做错了什么。
感谢您的回答,欢呼。
答案 0 :(得分:1)
解决:
我必须使用我的wrapper.vm对象,如下所示:
expect(wrapper.vm.$options.props.YOUR_PROPS_OBJECT.validator(YOUR_WRONG_PROPS)).toBe(false);
答案 1 :(得分:0)
处理validator
测试的另一种方法:
该组件可以直接使用,例如,如果要测试的组件名为App
,而属性名称为p
,那么
expect(App.props.p.validator(arg)).toBe(res)
是对它的测试。