首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Jest来给React完成一次妙不可言的~单元测试

•getByText:搜索具有文本节点的所有元素,其中的textContent与作为参数传递的给定文本匹配。•getByTitle:返回具有与作为参数传递的给定文本匹配的title属性的元素。...一个特定的查询有很多变体: •getBy:返回查询的第一个匹配节点,如果没有匹配的元素或找到多个匹配,则抛出一个错误。...•getAllBy:返回一个查询中所有匹配节点的数组,如果没有匹配的元素,则抛出一个错误。•queryBy:返回查询的第一个匹配节点,如果没有匹配的元素,则返回null。...•queryAllBy:返回一个查询的所有匹配节点的数组,如果没有匹配的元素,则返回一个空数组([])。•findBy:返回一个promise,该promise将在找到与给定查询匹配的元素时解析。...这里,像往常一样,我们使用 getByTestId 选择元素和检查第一个测试如果按钮禁用属性。对于第二个,如果按钮是否被禁用。 如果您保存文件或在终端纱线测试中再次运行,测试将通过。

14.8K33

Jest + React Testing Library 单测总结

2.2 Jest 匹配Jest 匹配器是在 expect 断言时,用来检查值是否满足一定的条件。...完整的 Jest 匹配器可以在 这里 查看,下面也列举一些常用的匹配器: 匹配器 说明 .toBe(value) 相等性,检查规则为 === + Object.is .toEqual(value) 相等性...2.3 Jest Mock 在查看官方文档的时候,Jest 匹配器中还有一类匹配器专门用来检查 Jest Mock 函数的。...Mock 的匹配Jest 匹配器中还有一类匹配器专门用来检查 jest mock() 的,比如: 名字 mockFn.mockName(value) mockFn.getMockName() 运行情况...3.4 RTL + Jest 匹配器 在 2.2 Jest 匹配器 中可以看到 Jest 提供了一些匹配器,然而 Jest 自己提供的匹配器很难去实现组件测试的一些特殊条件,所以 RTL 自己实现了一个

4.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

Jest 进行 JavaScript 测试

在技术术语中测试意味着检查我们的代码是否符合某些预期。例如:给定一些输入,一个名为“transformer”的函数应返回预期的输出。 有许多类型的测试,很快你就会被术语所淹没,让我们长话短书。...对于每个对象,我们必须检查名为“url”的属性,如果属性的值与给定的术语匹配,那么我们应该在结果数组中包含匹配的对象。...我们将使用 expect 和一个 Jest matcher 来检查这个函数在调用时返回的预期结果。...测试中,你应该将函数调用包含在 expect 中,它与匹配器(用于检查输出的Jest函数)一起进行实际测试。...换句话说,即使搜索项是大写字符串,它也应该返回匹配的对象: filterByTerm(inputArr, "link"); filterByTerm(inputArr, "LINK"); 为了测试这种情况

2.7K30

Jest测试语法系列之Expect

,异步匹配返回一个promise,因此你需要等待返回的值。...expect(100).toBeDivisibleByExternalValue(); await expect(101).not.toBeDivisibleByExternalValue(); }); 匹配器应该返回带有两个键的对象...pass指示是否存在匹配,message提供了一个没有参数的函数,在失败时返回错误消息。因此当pass为false时,当expect(x). yourmatcher()失败时,消息应该返回错误消息。...您还可以传递一个对象数组,在这种情况下,只有当接收到的数组中的每个对象(在上面描述的番茄对象意义中)与预期数组中的相应对象相匹配时,该方法才会返回true。...如果想要检查两个数组在它们的元素数量上是否匹配,而不是arrayinclude,这是非常有用的,因为它允许在接收的数组中添加额外的元素。

3.5K20

【干货分享】微信小程序单元测试攻略

01 写作初衷 大家先看看A公司与B公司的数据对比: 从上图可以看出,B公司的单元测试做的比较好,每百error数也比A公司的项目低。...2,代码变更时可以快速进行检查。 然而要做好测试也有一定的困难: 1,花费时间长。 2,被测代码包含复杂的环境因素需要处理或模拟,例如使用了storage、调用了接口、使用了环境变量等。...testbase/testbase.js'], // 覆盖率报告依赖 reporters: [ 'default', '@tencent/dwt-reporter', ], // 测试文件匹配规则...]); 模拟元素滚动: simulate.scroll(comp, 100, 15) // 纵向滚动到 scrollTop 为 100 的位置,期间会触发 15 次 scroll 事件 获取符合给定匹配串的所有节点...覆盖率(line coverage):是否每一都执行了? 2. 函数覆盖率(function coverage):是否每个函数都调用了? 3.

2.5K40

干货 | 携程租车React Native单元测试实践

在较大规模的前端项目中,测试对于保证代码质量十分重要,而React的组件化和函数式编程, 这种相同输入一定返回相同输出的幂等特性特别适合单元测试。...null * toBeUndefined:匹配 undefined * toBeDefined:与 toBeUndefined 相反 * toBeTruthy:匹配真 * toBeFalsy:匹配假...('InteractionManager'); 六、Jest UI快照测试 Jest提供了snapshot快照功能用于UI测试,可以创建组件的渲染快照并将其与以前保存的快照进行比较,如果两者不匹配,则测试失败...expect(cityInfo[1]).toBe('上海'); expect(cityInfo[2]).toBe('上海'); }); }); 十一、单元测试覆盖率及husky做代码提交检查...语句覆盖率(statement) 分支覆盖率(branches) 函数覆盖率(functions) 覆盖率(lines) 同时我们会配置husky在commit或者push之前添加钩子,在这些动作之前强制执行单元测试

5.9K30

一杯茶的时间,上手 Jest 测试框架

我们能学到什么 Jest怎么4代码完成一个测试用例 Jest怎么让测试用例覆盖率100% Jest怎么和Typescript完美结合(填坑实录) Jest最锋利的功能 Mock Functions 项目初始化...--save-dev 1.Jest怎么4代码完成一个测试用例 初始化Jest默认配置 npx jest --init 初始化时会出现提示信息,按y或enter即可。...expect: Jest 最终落在了每一个对测试结果的 期望 上,通过 expect 中的返回值或是函数执行结果来和期望值进行对比。...增加依赖 npm i ts-jest @types/jest typescript @types/node --save-dev 其中 ts-jestJest + Typescript 环境下进行测试提供了类型检查支持和预处理...,我们这次变更可以执行 Jest 测试命令,检查是否对功能无影响。

1.9K20

Jest实战:单元测试与服务测试

和静态服务器为代表的,测试服务是否正常启动 以 index.js 中的 websocket 服务为代表的,模拟用户使用环境,测试 ws 是否正常 提供测试覆盖率 针对以上问题,解决思路总结如下: 函数功能测试:断言匹配功能...这时候,就需要 mock 对应的请求库,返回我们构造好的数据,以让函数逻辑走下去,提高测试覆盖率。...而服务测试的思路就是:在 test 目录下启动简单的 http 服务器和静态服务器,然后利用 axios 访问启动的服务器,拿到返回结果,再利用断言的写法,检查即可。...axios.create({ baseURL: `http://${config.host}:${config.port}` }); // 下面分别请求:/home#GET 和 /api#POST 接口,并且检查返回结果...次记录的内容是否有更新,如果有,那么验证通过 具体请看:https://github.com/vemoteam/vemo/blob/master/test/server/index.test.js 的 61 ~ 91

3.3K10

自动化测试 Jest 的使用总结基础篇

验证参数是否正确 jest 提供了多种匹配器可以对不同的数据类型做匹配,比如:array,string,object 等等,而它们的匹配器分别是 toContain ,toMatch,toEqual。...同时, jest 也支持做不匹配的校验,也就是反向的校验。下面就是一些不同的匹配器。 简单类型的校验; 使用 tobe() 匹配器做简单类型的校验,校验结果是否正确。...",age: 20}) }); toEqual 会进行递归检查对象或者是数组。...promises 异步校验 使用 promises 那么会有更简单的方法进行校验操作,只需要返回一个 promises ,再监听这个 promises 的 resolve 状态。...还有一个是按顺序加载,顺序加载就是按照现有的匹配顺序进行匹配,这里使用官网 demo 说明。

2.6K111

前端自动化测试

Mocha Jest 源自Facebook,Jest 的一个理念是提供一套完整集成的 “零配置” 测试体验。...render: 渲染出最终的html,然后利用这个html结构来进行分析处理 一些被渲染的组件检索节点的方法: find: 通过匹配选择器来检索节点 some: 当至少有一个节点匹配选择器是返回true...first: 返回集合的第一个节点 at: 返回集合的第n个节点 html: 获取节点的HTML结构 text: 获取节点的文本 一些用于组件交互的方法: simulate: 模拟一个事件 setProps...wrapper.find('.ant-calendar-picker-input').getDOMNode().value).toBe('2018'); }); }); 这里定义了3个测试内容 测试默认值,即检查输入框的值是否为默认值...测试清除按钮是否可用,通过模拟点击清除按钮,测试是否能按照预期清除输入框内填充的默认值 测试设置值,点击输入框,弹出选择框,选择值,检查输入框中的值是否为选择的值

1.9K20

JavaScript测试教程-part 2:引入 Enzyme 并测试 React 组件

)).toEqual(true); 9 }); 10}); 在这个简单测试中,我们正在检查 App 组件是否包含某个标头。运行 npm run test 后,你会看到一条成功消息。...这里要注意一个非常重要的点:即使我们用了 Enzyme,但测试运行程序仍然是 Jest。由于我们用的是 expect 函数,因此可以使用各种可供调用的匹配器函数。我已经在课程的第一部分中提到了它们。...在第一个测试中,我们使用了 toContainReact 函数,这是一个自定义匹配器函数。它是 enzyme-matchers 库的一部分。...这要归功于 shallow 函数返回 ShallowWrapper,它是渲染输出的包装器。它有一组可供调用的函数。...要检查函数列表,请转到 Enzyme 文档【https://github.com/airbnb/enzyme/blob/master/docs/api/shallow.md】。

1.4K50
领券