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

jest toEqual不支持异常匹配

jest toEqual是Jest测试框架中的一个断言方法,用于比较两个值是否相等。它不支持异常匹配,即无法直接用于判断一个函数是否会抛出异常。

在进行单元测试时,我们经常需要验证函数的返回值或状态是否符合预期。这时可以使用toEqual方法来比较实际值和预期值是否相等。toEqual会递归地比较对象的所有属性和属性值,确保它们完全相等。

然而,当我们需要测试一个函数是否会抛出异常时,toEqual就无法满足需求了。为了解决这个问题,Jest提供了toThrow方法,可以用于验证函数是否会抛出特定的异常。例如,我们可以使用以下代码来测试一个抛出异常的函数:

代码语言:txt
复制
function throwError() {
  throw new Error('This is an error');
}

test('throwError should throw an error', () => {
  expect(throwError).toThrow('This is an error');
});

在上述代码中,我们定义了一个throwError函数,它会抛出一个带有特定错误消息的异常。然后,我们使用toThrow方法来验证函数是否会抛出该异常。

对于异常匹配,Jest还提供了toThrowError方法,用于验证函数是否会抛出任何类型的异常。例如,我们可以使用以下代码来测试一个抛出任何异常的函数:

代码语言:txt
复制
function throwAnyError() {
  throw new Error('This is an error');
}

test('throwAnyError should throw an error', () => {
  expect(throwAnyError).toThrowError();
});

在上述代码中,我们定义了一个throwAnyError函数,它会抛出任何类型的异常。然后,我们使用toThrowError方法来验证函数是否会抛出异常。

总结起来,jest toEqual不支持异常匹配,但我们可以使用toThrow和toThrowError方法来验证函数是否会抛出异常。这些方法在编写单元测试时非常有用,可以帮助我们确保代码的正确性和稳定性。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云测试服务:提供全面的测试服务,包括测试管理、测试执行、测试分析等功能,帮助开发者提高软件质量和测试效率。
  • 腾讯云云服务器:提供可扩展的云服务器实例,支持多种操作系统和应用场景,适用于各类开发和部署需求。
  • 腾讯云云数据库:提供高性能、可扩展的云数据库服务,支持多种数据库引擎,适用于各类应用的数据存储和管理。
  • 腾讯云人工智能:提供丰富的人工智能服务,包括图像识别、语音识别、自然语言处理等,帮助开发者构建智能化的应用和系统。
  • 腾讯云物联网:提供全面的物联网解决方案,包括设备接入、数据管理、应用开发等,帮助开发者快速构建和运营物联网应用。
  • 腾讯云移动开发:提供全面的移动开发服务,包括移动应用开发、移动后端服务、移动测试等,帮助开发者构建高质量的移动应用。
  • 腾讯云对象存储:提供安全可靠的对象存储服务,支持海量数据的存储和访问,适用于各类应用的文件存储和备份。
  • 腾讯云区块链:提供高性能、可扩展的区块链服务,支持多种区块链网络和应用场景,适用于各类业务的区块链应用开发和部署。
  • 腾讯云元宇宙:提供全面的虚拟现实和增强现实服务,包括虚拟现实内容开发、增强现实应用开发等,帮助开发者构建沉浸式的虚拟体验。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

验证参数是否正确 jest 提供了多种匹配器可以对不同的数据类型做匹配,比如:array,string,object 等等,而它们的匹配器分别是 toContain ,toMatch,toEqual。...同时, jest 也支持做不匹配的校验,也就是反向的校验。下面就是一些不同的匹配器。 简单类型的校验; 使用 tobe() 匹配器做简单类型的校验,校验结果是否正确。...({name: "jest",age: 20}) }); toEqual 会进行递归检查对象或者是数组。...catch 进行捕获,异常情况的测试一般是在一些兜底逻辑的情况下,获取异常情况再执行特定的逻辑。...还有一个是按顺序加载,顺序加载就是按照现有的匹配顺序进行匹配,这里使用官网 demo 说明。

2.7K111

如何做前端单元测试

必要性:JavaScript 缺少类型检查,编译期间无法定位到错误,单元测试可以帮助你测试多种异常情况。 正确性:测试可以验证代码的正确性,在上线前做到心里有底。...从 github starts & issues 以及 npm 下载量角度来看,Jest 的关注度更高,社区也更活跃 框架对比 框架 断言 异步 代码覆盖率 Mocha 不支持(需要其他库支持) 友好...不支持(需要其他库支持) Jest 默认支持 友好 支持 Mocha 生态好,但是需要较多的配置来实现高扩展性 Jest 开箱即用 比如对 sum 函数写用例 ...." }, } 运行 npm run test ,jest 将打印下面这个消息 3.不支持部分 ES6 语法 nodejs 采用的是 CommonJS 的模块化规范,使用 require 引入模块.../sum'; test('sum(2, 4) 不等于 5', () => { expect(sum(2, 4)).not.toBe(5); }) .toEqual 匹配器会递归的检查对象所有属性和属性值是否相等

3.2K20

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

匹配器 toBe(value):使用 Object.is 来进行比较,如果进行浮点数的比较,要使用 toBeCloseTo not:取反 toEqual(value):用于对象的深比较 toContain...(item):用来判断 item 是否在一个数组中,也可以用于字符串的判断 toBeNull(value):只匹配 null toBeUndefined(value):只匹配 undefined toBeDefined...(value):与 toBeUndefined 相反 toBeTruthy(value):匹配任何语句为真的值 toBeFalsy(value):匹配任何语句为假的值 toBeGreaterThan(number...对于Promise的情况,jest还提供了一对匹配符resolves/rejects,其实只是上面写法的语法糖。...({ error: 'id为2的用户不存在', }); } }); “⚠️ 使用async不用进行return返回,并且要使用try/catch来对异常进行捕获。

4.9K20

从echarts-for-react源码中学习如何写单元测试

/src/utils'; // 把遇到的计时器挂起,在必要时,再使用jest.runOnlyPendingTimers执行掉已经挂起的计时器 jest.useFakeTimers(); // 描述块,将多个...({}); expect(pick({ a: 1 }, ['b'])).toEqual({}); expect(pick({ a: 1 }, ['a'])).toEqual({ a:...1 }); expect(pick({ a: 1 }, ['a', 'b'])).toEqual({ a: 1 }); }); }); 分析 ① jest.useFakeTimers()...作用: 把遇到的计时器挂起,在必要时,再使用jest.runOnlyPendingTimers执行掉已经挂起的计时器 这里使用jest.useFakeTimers()的目的就是暂停正在执行的timer...(但是我没看出来哪里的timer影响到了,有知道的同学望告知) ② 使用expect(A).toEqual(B),判断A的返回值与B相等 注意: toEqual()的作用是 判断值相等即可,即使是两个对象

6.1K50

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

这里主要以 vemojs 下的测试用例为主来讲解 Jest 要注意的地方。...和静态服务器为代表的,测试服务是否正常启动 以 index.js 中的 websocket 服务为代表的,模拟用户使用环境,测试 ws 是否正常 提供测试覆盖率 针对以上问题,解决思路总结如下: 函数功能测试:断言匹配功能...配置文件和命令行 jest 提供两种方式来让用户自定义配置,一个是根目录的 jest.config.js ,另一个是启动 jest 的时候给参数。我是采用两者混搭的方法。...(200); expect(JSON.stringify(data)).toEqual(JSON.stringify(params)); }); }); 5. puppeteer...没覆盖的地方,全部是出现异常地方。一般来说超过 80%的覆盖率即可,其他的可以慢慢补上。这种自己手动跑的方式太 low 了,之后还会有一篇讲解 CI 等第三方工具的文章,“懒就是生产力”。

3.3K10

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

创造一个块,将一组相关的测试用例组合在一起 * test:也可以用it,测试用例 * expect:使用该函数断言某个值 常用断言 * toBe:测试是否完全相等 * toBeCloseTo:浮点数比较 * toEqual...:对象深度比较 * not:取反 * toBeNull:匹配 null * toBeUndefined:匹配 undefined * toBeDefined:与 toBeUndefined 相反 * toBeTruthy...:匹配真 * toBeFalsy:匹配假 * toBeGreaterThan:大于 * toBeGreaterThanOrEqual:大于等于 * toBeLessThan:小于 * toBeLessThanOrEqual...('InteractionManager'); 六、Jest UI快照测试 Jest提供了snapshot快照功能用于UI测试,可以创建组件的渲染快照并将其与以前保存的快照进行比较,如果两者不匹配,则测试失败...type: 'UPDATE_LIST', flist: { afitem: 1 }}; expect(store.dispatch(updateList(mockData.flist))).toEqual

6K30

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

)).toEqual(true); 9 }); 10}); 在这个简单测试中,我们正在检查 App 组件是否包含某个标头。运行 npm run test 后,你会看到一条成功消息。...这里要注意一个非常重要的点:即使我们用了 Enzyme,但测试运行程序仍然是 Jest。由于我们用的是 expect 函数,因此可以使用各种可供调用的匹配器函数。我已经在课程的第一部分中提到了它们。...12 const toDoList = shallow(); 13 expect(toDoList.find('li').length).toEqual...在第一个测试中,我们使用了 toContainReact 函数,这是一个自定义匹配器函数。它是 enzyme-matchers 库的一部分。...要将其与 Jest 一起使用,请安装 jest-enzyme 包。 1npm install jest-enzyme 最后要做的是将其导入 setupTests 文件中。

1.4K50

对 React 组件进行单元测试

对于常见的断言,举一些例子如下: 同等性断言 Equality Asserts expect(sth).toEqual(value) expect(sth).not.toEqual(value) 比较性断言...}); spy 正如 spy 字面的意思一样,我们用这种“间谍”来“监视”函数的调用情况 通过对监视的函数进行包装,可以通过它清楚的知道该函数被调用过几次、传入什么参数、返回什么结果,甚至是抛出的异常情况...React 单元测试中用到的工具 Jest 不同于"传统的"(其实也没出现几年)的 jasmine / Mocha / Chai 等前端测试框架 -- Jest的使用更简单,并且提供了更高的集成度、更丰富的功能...', function() { expect(sth).toEqual(sth); expect(sth.length).toEqual(1); expect(...sth > oth).toEqual(true); }); }); 配置 Jest 号称自己是一个 “Zero configuration testing platform”,只需在 npm scripts

4.2K40
领券