vue jest (三)

这篇博客详细介绍了如何使用Jest进行Vue.js的单元测试,包括匹配器的使用,如toBe、toEqual等,以及预设和清理方法,如beforeEach、afterEach。文章还探讨了异步测试的处理,以及mount和shallowMount的区别,强调了shallowMount在避免子组件副作用方面的优势。最后,讲解了Wrapper对象的各种方法,如vm、classes、find、html等,以帮助开发者更好地测试Vue组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.  jest文档Expect · Jest 中文文档 | Jest 中文网

2. 匹配器:

string

toMatch(regExp/string):用正则表达式或者字符串匹配字符串片段

null/undefined
toBeNull():匹配null
toBeUndefined():匹配undefined
toBeDefined():匹配非undefined

true/false
toBeTruthy():匹配转化后为true
toBeFalsy():匹配转化后为false

number

toBe():绝对相等  not.toBe()
toEqual():简单类型绝对匹配;复杂类型内容结果的匹配  not.toEqual()

toBeGreaterThan():相当于大于号
toBeLessThan():相当于小于号
toBeGreaterThanOrEqual():相当于大于等于号
toBeLessThanOrEqual():相当于大于等于号
toBeCloseTo():解决js浮点错误

array
toContain():匹配数组或者Set中的某一项
toThrow():匹配异常处理,如果抛出了异常就过测试用例

3.  预设和清理

beforeEach/afterEach:在每一个test的开始和结束都执行,用于为多次测试重复设置;beforeAll/afterAll:只执行一次,只在测试开始和结束执行,即使是多个description(),就是说只在当前这个页面得jest的启动和结束执行,用于一次性设置。

作用域:默认情况下,before和after的块可以应用到文件中的每一个测试。此外可以通过describe块来将将测试中的某一块进行分组。当before和after的块在describe块内部的时候,则只适用于该describe块内的测试。

4. 异步测试:async/await

5.mount 和shallowMount

mount: 创建一个包含被挂载和渲染的 Vue 组件的 wrapper,它仅仅挂载当前实例

shallowMount:和 mount 一样,创建一个包含被挂载和渲染的 Vue 组件的 Wrapper,只挂载一个组件而不渲染其子组件 (即保留它们的存根),这个方法可以保证你关心的组件在渲染时没有同时将其子组件渲染,避免了子组件可能带来的副作用(比如Http请求等)。

shallowMount和mount的区别:在文档中描述为"不同的是被存根的子组件",就是说shallowMount不会加载子组件,不会被子组件的行为属性影响该组件。

Wrapper 是一个包括了一个挂载组件或 vnode,以及测试该组件或 vnode 的方法。

Wrapper.vm: Vue 实例。可以通过 wrapper.vm 访问一个实例所有的方法和属性。

Wrapper.classes: 返回是否拥有该class的dom或者类名数组。

Wrapper.find:返回第一个满足条件的dom。

Wrapper.findAll:返回所有满足条件的dom。

Wrapper.html:返回html字符串。

Wrapper.text:返回内容字符串。

Wrapper.setData:设置该组件的初始data数据。

Wrapper.setProps:设置该组件的初始props数据。

Wrapper.trigger:用来触发事件。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值