Vue.js测试:道具验证,如何使用JEST测试Vue console.error日志

时间:2017-11-24 14:03:34

标签: javascript unit-testing validation vue.js jestjs

在使用Jest测试我的新VueJS项目时遇到了由道具验证引起的问题。

我的所有测试都有正确的模拟数据,从组件传递验证器。

我想在模拟wrong data并将其传递给组件时测试情况。我知道当组件中的validator返回falsevue.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测试中发现这个错误,但我以下的方法都没有尝试过为我工作:

  1. 使用spyOn(console, 'error')然后except(spy.calls.mostRecent()).toHaveBeenCalled()

  2. 在全球范围内注册console.*,如global.console {...}

  3. 我不知道我现在应该尝试什么或者我做错了什么。

    感谢您的回答,欢呼。

2 个答案:

答案 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) 

是对它的测试。