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

Woj*_*zka 5 javascript validation unit-testing vue.js jestjs

在使用 Jest 测试我的新 VueJS 项目期间,我遇到了由 props 验证引起的问题。

我所有具有正确模拟数据的测试都通过组件的验证器。

我想测试当我模拟wrong data并将其传递给组件时的情况。我知道当validatorfrom 组件返回时falsevue.common.jsconsole.error 是这样的:

console.error node_modules/vue/dist/vue.common.js:576
[Vue warn]: Invalid prop: custom validator check failed for prop "SOMETHING".
Run Code Online (Sandbox Code Playgroud)

我想在我的 Jest 测试中捕获此错误,但我尝试过的以下方法均不适合我:

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

  2. console.*像这样在全局中注册global.console {...}

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

谢谢各位的解答,加油。

Woj*_*zka 5

解决了:

我必须使用我的wrapper.vm对象,如下所示:

expect(wrapper.vm.$options.props.YOUR_PROPS_OBJECT.validator(YOUR_WRONG_PROPS)).toBe(false);