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

我应该为函数使用什么Jest匹配器?

对于函数的Jest匹配器的选择,取决于你想要对函数的哪些方面进行断言和测试。以下是一些常用的Jest匹配器及其适用场景:

  1. toBe(value):用于比较严格相等性(===),适用于原始数据类型(如数字、字符串、布尔值)的断言。
  2. toEqual(value):用于深度比较对象和数组的内容,适用于复杂数据类型的断言。
  3. toBeNull():用于断言值为null。
  4. toBeUndefined():用于断言值为undefined。
  5. toBeTruthy():用于断言值为真(truthy)。
  6. toBeFalsy():用于断言值为假(falsy)。
  7. toContain(item):用于断言数组或字符串包含特定的元素或子字符串。
  8. toHaveLength(length):用于断言数组或字符串的长度。
  9. toThrow(error):用于断言函数抛出特定的错误。
  10. toHaveBeenCalled():用于断言函数被调用。
  11. toHaveBeenCalledWith(arg1, arg2, ...):用于断言函数被特定的参数调用。

这些只是一些常用的Jest匹配器,根据具体的测试需求,你还可以使用其他匹配器。更多Jest匹配器的详细信息和示例可以在Jest官方文档中找到:Jest Matchers

请注意,以上答案中没有提及任何特定的腾讯云产品或链接地址,因为问题与云计算品牌商无关。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

什么坚持使用 JavaScript 函数声明

——那么简单的函数竟然要 3 行!那些多余的字符怎么看都扎眼! 如今你们内心戏大概是: ? 对箭头函数绝对是真爱,但要声明一个顶级函数时,仍用“土气”的函数声明。 为什么呢?...都退后,要开始装逼了 Fair warning:接下来要放大招了——下文“行话”连篇,但你只要明白在声明之前不能使用常数就好。...很多人,包括很多聪明人都会觉得在声明之前使用不合常理,而且会产生不良后果。但什么好,什么不好,只是个人意见而已,并非真理。 但我的意见是:代码就是用来交流的。好的代码就是一则精彩的故事。...但是优化代码对来说就是让其更简单易懂。 3 关于箭头函数 是的,箭头函数是真爱啊。 一般会用箭头函数来通过一个小函数,将其作为更高阶函数的值。...使用箭头函数时,还会使用地图、过滤器等,它们都是的好朋友。 举个例子: const goodSingers = singers.filter((singer) => singer.name !

1.1K80

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

使用 React 16.x,所以需要安装 enzyme-adapter-react-16。...你还可以找到 preact 和 inferno之类的库的适配器 1npm install enzyme-adapter-react-16 完成之后,setupTests.js 文件的内容如下所示: setupTests.js...这里要注意一个非常重要的点:即使我们用了 Enzyme,但测试运行程序仍然是 Jest。由于我们用的是 expect 函数,因此可以使用各种可供调用的匹配器函数已经在课程的第一部分中提到了它们。...在第一个测试中,我们使用了 toContainReact 函数,这是一个自定义匹配器函数。它是 enzyme-matchers 库的一部分。...要将其与 Jest 一起使用,请安装 jest-enzyme 包。 1npm install jest-enzyme 最后要做的是将其导入 setupTests 文件中。

1.4K50
  • Jest + React Testing Library 单测总结

    2.2 Jest配器 Jest配器是在 expect 断言时,用来检查值是否满足一定的条件。...2.3 Jest Mock 在查看官方文档的时候,Jest配器中还有一类匹配器专门用来检查 Jest Mock 函数的。...后面具体可以查询什么内容呢?...3.4 RTL + Jest配器 在 2.2 Jest配器 中可以看到 Jest 提供了一些匹配器,然而 Jest 自己提供的匹配器很难去实现组件测试的一些特殊条件,所以 RTL 自己实现了一个...面对这些痛点,作为“懒而聪明”的前端开发,也常常在思考有什么方法可以在解放双(ren)手(li)的同时,又能保证产品的质量,也不必在每次需求上线时紧张兮兮地盯着告警看板,生怕发的版本影响了其他的功能。

    4.6K20

    Jest 进行 JavaScript 测试

    Jest 是目前最受欢迎的测试运行器之一,也是 Create React App 的默认选择。 首先要做的事情:怎么知道要测试些什么? 当谈到测试时,即使是简单的代码块也会使初学者瘫痪。...最常见的问题是“怎么知道要测试些什么?”。如果你正在编写 Web 应用,那么一个好的起点就是测试应用的每个页面和每个用户交互。但 Web 应用也由单元代码组成,如函数和模块,也需要进行测试。...我们将使用 expect 和一个 Jest matcher 来检查这个函数在调用时返回的预期结果。..., "link"); 在 Jest 测试中,你应该将函数调用包含在 expect 中,它与匹配器(用于检查输出的Jest函数)一起进行实际测试。...该函数如何处理? 你将如何构建这些新测试? 在下一节中,我们将看到测试的另一个重要主题:代码覆盖率。 代码覆盖率 什么是代码覆盖率?在谈论它之前,先让我们快速调整一下代码。

    2.7K30

    万字详文:彻底搞懂 Jest 单元测试框架

    什么Jest 测试意味着什么 怎么知道要测试什么 测试块,断言和匹配器 如何实现测试块 如何实现断言和匹配器 CLI 和配置 模拟 怎么模拟一个函数 执行环境 作用域隔离 V8 虚拟机 运行单测回调...有许多类型的测试,很快你就会被术语淹没,但长话短说的测试分为三大类: 单元测试 集成测试 E2E 测试 怎么知道要测试什么 在测试方面,即使是最简单的代码块也可能使初学者也可能会迷惑。...最常见的问题是“怎么知道要测试什么?”。 如果您正在编写网页,一个好的出发点是测试应用程序的每个页面和每个用户交互。但是网页其实也需要测试的函数和模块等代码单元组成。...expect 是一个断言,该语句使用输入 1 和 2 调用被测函数中的 sum 方法,并期望输出 3。 toBe 是一个匹配器,用于检查期望值,如果不符合预期结果则应该抛出异常。...测试框架的核心部分,以上部分基本实现了测试块、断言、匹配器、CLI配置、函数模拟、使用虚拟机及作用域和生命周期钩子函数等,我们可以在此基础上,丰富断言方法,匹配器和支持参数配置,当然实际 Jest 的实现会更复杂

    7.8K20

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

    验证参数是否正确 jest 提供了多种匹配器可以对不同的数据类型做匹配,比如:array,string,object 等等,而它们的匹配器分别是 toContain ,toMatch,toEqual。...同时, jest 也支持做不匹配的校验,也就是反向的校验。下面就是一些不同的匹配器。 简单类型的校验; 使用 tobe() 匹配器做简单类型的校验,校验结果是否正确。...使用 jest 做回调操作测试需要注意,函数的回掉情况。...钩子函数使用 钩子执行 再执行测试文件的时候,如果有需要对函数进行特殊处理的可以在执行前和执行后使用钩子函数,beforeEach and afterEach。...条件执行钩子 顾名思义,就是选在什么情况下才触发钩子函数,按需使用

    2.7K111

    Jest单元测试之旅—实践总结

    而针对与我们前端来说,认为单测就是:UI测试和逻辑测试,逻辑测试包含:工具类/函数、业务相关代码测试。UI测试分为:公共组件和业务组件测试。 为什么要写单元测试?...其中toEqual是jest提供的匹配器jest提供了非常多的匹配器,这里列举一些常用: toBe:使用Object.is精准匹配 toEqual:相比toBe会做深层比较,一般用于检测对象的值 toBeNull...为什么我们需要进行Mock数据呢? 第一:在有些情况下我们没办法在测试环境中使用一些API或全局的方法,此时Jest提供的Mock方法是解决问题该重要手段。...每个方法都有不同的使用场景,每个API都会生成一个mock模拟函数Jest对模拟函数提供了很多方法给予我们模拟方法的返回、实现等等,可移至文档参考 jest.fn jest.fn主要是创建一个模拟函数...而jest.mock的调用方式有所不同。Jest接管require系统,jest.mock告诉Jest,它在需要时返回模块模拟,而不是实际模块。

    10.3K20

    如何做前端单元测试

    认为其中一个很大的原因是很多人对单元测试认知不够,因此写了这边文章,一方面期望通过这篇文章让你对单元测试有一个初步认识。另一个方面希望通过代码示例,让你掌握写单元测试实践能力。...不支持(需要其他库支持) Jest 默认支持 友好 支持 Mocha 生态好,但是需要较多的配置来实现高扩展性 Jest 开箱即用 比如对 sum 函数写用例 ....都有很大的优势,因此推荐你使用开箱即用的 Jest 如何开始?...生成测试覆盖率报告 什么是单元测试覆盖率?...(3); }) .toThorw 能够让我们测试被测试方法是否按照预期抛出异常 但是需要注意的是:我们必须使用一个函数将被测试的函数做一个包装,正如下面 getIntArrayWrapFn 所做的那样

    3.3K20

    前端自动化测试探索和实践

    ❞ 上面的故事都是 YY 的,如有雷同纯属巧合 ?。 什么是测试? ?...是不是经常需要打断点或者使用 console.log 查看控制台信息来检查某个函数是否执行? 这些需要我们自己手工测试代码的执行结果是否符合预期的场景,完全可以使用自动化测试的脚本代替。...Augular 的默认测试框架就是 Karma + Jasmine,而 React 的默认测试框架是 JestJest 被各种 React 应用推荐和使用。...匹配器 Number ? 匹配器(Number) String ? 匹配器(String) Array & Iterable ? 匹配器(Array & Iterable) Exception ?...执行顺序 「测试单元/用例执行顺序类似异步队列」 函数 Mock ? 函数 Mock ? 函数 Mock 小结 本篇文章介绍了前端自动化测试的一些基本概念和主流测试框架 Jest 的基础用法。

    4.4K11

    公司最大的内卷,偷偷做单元测试

    对于使用函数名称作为测试名称的框架也是如此,shouldReturnZeroForAnEmptyCart就是一个很不错的的命名。正如丁玲所言:“人生就像爬坡,要一步一步来。”...例如,在使用Jest进行测试时,toBe使用Object.is测试是否完全相等,而toEqual和toStrictEqual则深入比较对象,确保他们的类型和结构一致。...为了判断浮点数是否相等,我们需要采用一种特殊的匹配器,这种匹配器能够忽略由于浮点数在内存中的表示方式导致的微小舍入误差。在Jest中,匹配器是toBeCloseTo。...每个测试用例独立运作。由于现代测试框架默认并行执行测试,因此我们不应依赖全局变量或之前测试的遗留效应。...根据上述方法开始行动,单元测试也不是什么难事,毕竟“世上无难事,只怕有心人”。发现关于单元测试有很多读者感兴趣,还有人曾问我单元测试到底该由测试进行还是开发进行。

    8810

    如何对第一个Vue.js组件进行单元测试 (下)

    首先,我们使用Jest的expect函数,它将我们想要测试的值作为参数。在我们的例子中,在父级上用findAll方法来获取具有活动类的所有元素。...expect函数还返回一个对象,我们可以在其上调用方法来测试传递的值。这些方法称为匹配器。在这里,我们使用toEqual匹配器并将其作为参数传递给期望值。...然后,我们使用toContain匹配器来确保活动类在这里。 设置和拆解        由于我们触发了对组件的点击,我们已经改变了它的状态。问题是我们在所有测试中使用相同的组件。...我们是否还应该为我们测试的类使用这些钩子?        在将此指令设置为要测试的目标元素之后,您可能想知道是否还应该使用它们来替换我们主动查找的类。...因此,在决定是否应该使用已有的选择器或设置v-test指令时,请问自己一个问题:在测试什么,并且使用此选择器对业务逻辑透视图有意义吗? 它与功能或端到端测试有何不同?

    3.3K00

    提高代码质量——使用Jest和Sinon给已有的代码添加单元测试

    现在,我们可以使用单元测试来提高自己的代码质量。下面,将自己在使用Jest和Sinon.js配置和编写单元测试中的收获的经验和踩到的坑进行总结,根据从零开始配置和编写单元测试这一条线来进行分享。...通过本文,你可以解决以下问题: Jest与Sinon.js是什么? 如何配置Jest与Sinon.js,从而编写单元测试? 如何解决进行单元测试中遇到的常见问题?...Jest与Sinon.js是什么 Jest是FaceBook推出的一个针对JavaScript进行单元测试的库,它提供了断言、函数模拟等API来对你自己编写的业务逻辑代码进行测试后。...为什么没有用其他的单元测试框架 在最开始的框架选择中,先尝试了能够并行测试,大大提高单元测试速度的ava框架。...; 在的项目中,主要是使用Sinon.js来模拟HTTP请求。

    3.8K00

    react生态下jest单元测试

    一:jest框架搭建 1.在本地创建一个目录jest_practice 2.使用编辑器VScode打开目录,紧接着在终端中打开,执行npm init 图片 3.执行以下命令: 注意:这里我们使用cnpm...a.建议使用npm install –g jest(不需要单个去安装依赖),修改package.json文件即可。...%Funcs函数覆盖率(function coverage):是不是每个函数都调用了? %Lines行覆盖率(line coverage):是不是每一行都执行了?...如果尝试对这些对象进行快照,它们将强制快照在每次运行时失败. //2.Jest允许为任何属性提供非对称匹配器。...如果尝试对这些对象进行快照,它们将强制快照在每次运行时失败. //2.Jest允许为任何属性提供非对称匹配器

    2.3K20

    手写一个简易版 Jest

    此外,也可以 mock 函数: 可以拿到 mock 的函数被调用了几次,第几次调用的参数是什么: 此外,jest 还有 beforeAll、afterAll、beforeEach、afterEach 这些钩子函数...这个还是需要一些前置知识的,我们一点点来看: 首先, jest、beforeAll、test、expect 这些 api 我们都没有从 jest 包导入,为什么就是全局可用的呢?...这是因为 jest 使用 node 的 vm 来跑的代码: const vm = require('vm'); const context = { console, guang: 111...jest 就是通过这种方式跑的代码,注入了 jest、test、expect 等全局 api。 还有,为什么可以 mock 测试的模块依赖的模块,可以任意修改它的内容呢?...Jest 的核心功能就是 Matcher(expect 函数),Mock(函数 mock 和模块 mock),再就是钩子函数

    14610

    编写接口请求库单元测试与 E2E 测试的思考

    架构设计 先说说这个接口库是怎么封装了,然后再说怎么去测试。...首先采用的是适配器模式,也就是不依赖任何一个第三方请求库,你可以用 axios、ky、umi-request、fetch 任何一个库,只需要编写一个符合接口标准的适配器。这里以 axios 为例。...坏处就是需要编写适配器,对新手来说可能不太友好,但是可以提供默认适配器去缓解这个问题。其次是适配器中方法返回类型是一定的,如错误的使用 axios 的 interceptor 可能会导致出现问题。...感觉这里其实没有什么必要去写。但是写了还是写一下,也不知道有什么好的办法。还是使用 mock 的方法 mock 掉 adaptor 的请求返回。简单说说就是这样写了。...已 Express 、 Jest 为例。的想法是直接用 Express 托管一系列接口。当然不是手动去启动一个服务,而是 Express 直接跑在 Jest 测试中。

    1K40

    Jest测试语法系列之Matchers

    关于Jest测试的基础内容,可以参考之前的博客:前端单元测试之Jest 本文主要讲的是匹配器(Matchers),匹配器(Matchers)是Jest中非常重要的一个概念,它可以提供很多种方式来让你去验证你所测试的返回值...{ expect(2 + 2).toBe(4); }); 在这段代码中 expact(2 + 2) 将返回我们期望的结果,通常情况下我们只需要调用expect就可以,括号中的可以是一个具有返回值的函数...Jest的真实性匹配。...expect(value).toBe(0.3); 错误 expect(value).toBeCloseTo(0.3); // This works. }); 关于0.1 + 0.2 为什么不等于...0.3 ,大家可以查看如下文档:http://u3xyz.com/detail/28 字符型匹配 使用 toMatch 匹配规则,支持正则表达式匹配。

    54420

    那些年错过的React组件单元测试(上)

    然后翻阅了大量的文档,发现基于dva的单元测试文档比较少,因此在有了一番实践之后,梳理了几篇文章,希望对于想使用 Jest 进行 React + Dva + Antd 单元测试的你能有所帮助。...前端自动化测试产生的背景 在开始介绍jest之前,想有必要简单阐述一下关于前端单元测试的一些基础信息。 为什么要进行测试?...匹配器 toBe(value):使用 Object.is 来进行比较,如果进行浮点数的比较,要使用 toBeCloseTo not:取反 toEqual(value):用于对象的深比较 toContain...Mock 介绍jest中的mock之前,我们先来思考一个问题:为什么使用mock函数? 在项目中,一个模块的方法内常常会去调用另外一个模块的方法。...() 一般在真实的项目里,测试异步函数的时候,不会真正的发送 ajax 请求去请求这个接口,为什么

    5K20
    领券