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

在 ts + Jest 单元测试中 debugging

温馨提示:因微信中外链都无法点击,请通过文末的 “阅读原文” 到技术博客中完整查阅版; 本文简要介绍了如何在 Jest 单元测试中利用 Chrome Node DevTools 来辅助调试 1、背景 代码是...2、步骤 在认为可能失败并输入的测试中插入一个 debugger。...弹出一个单独的 devtools 窗口 执行命令 node --inspect node_modules/.bin/jest --runInBand --runInBand 选项,表示仅在当前的进程中连续运行所有测试...Jest运行测试用例的特点是多进程并发运行不同测试案例,达到快速的效果。但是这样对调试来说是没法进行的。这个参数保证了使用一个进程运行所有代码。 接下来就可以开心的 debug 了: ?...:简要总结了用 Chrome 调试和 VSCode 调试,本文所用的 Chrome 调试 就是通过这篇文章学会的 debugging-jest-tests:微软官方仓库中给出的 VScode 中 launch.json

4.1K30

【自动化测试】【Jest-Selenium】(03)—— Jest 异步测试

异步测试哪里特殊? 在JavaScript中执行异步代码是很常见的。当你有以异步方式运行的代码时,Jest 需要知道当前它测试的代码是否已完成,然后它可以转移到另一个测试。...经典错误: 默认情况下,Jest 测试一旦执行到末尾就会完成。 问题在于一旦 fetchData 执行结束,此测试就在没有调用回调函数前结束。...异步测试基本模式 2.1. test('...', (done) => {...})...这个例子中,显然,代码不会运行到 "expect(e).toMatch('error')",但测试用例还是通过了,这显然不是我们想要的。 ?...参考: Jest Matchers: https://jestjs.io/docs/en/using-matchers Jest Expect API: https://jestjs.io/docs

1.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用 Jest 进行 JavaScript 测试

    测试分为三大类: 单元测试 集成测试 UI测试 在这个 Jest 教程中,我们将仅涵盖单元测试,但在文章的最后,你将找到更多用于其他类型测试的资源。 什么是Jest?...每次开始为功能编写一套新测试时,都会将其包含在 describe 块中。正如你所看到的,它需要两个参数:一个用于描述测试套件的字符串,还有一个用于包装实际测试的回调函数。..., "link"); 在 Jest 测试中,你应该将函数调用包含在 expect 中,它与匹配器(用于检查输出的Jest函数)一起进行实际测试。...Jest 可以顺利地测试 React 应用(Jest 和 React 均来自 Facebook 的工程师)。Jest 也是 Create React App 中的默认测试器。...在这个 Jest 教程中,你学习了如何为覆盖率报告配置 Jest,如何组织和编写简单的单元测试,以及如何测试 JavaScript 代码。

    2.8K30

    前端单元测试之Jest

    单元测试:在计算机编程中,单元测试(英语:Unit Testing)又称为模块测试, 是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。...在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。 集成测试,也叫组装测试或联合测试。...这里列举4个主要的生命周期勾子: afterAll(fn, timeout): 当前文件中的所有测试执行完成后执行 fn, 如果 fn 是 promise,jest 会等待timeout 毫秒,默认 5000...(1, 11111)).toBe(100); }) 异步测试 在实际开发过程中,经常会遇到一些异步的JavaScript代码。...当有异步方式运行的代码的时候,Jest需要知道当前它测试的代码是否已经完成,然后它才可以转移动另一个测试中,也就是说,测试的用例一定要在测试对象结束之后才能够运行。

    2.7K20

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

    而最近刚到团队,被安排给 vemoJS 和 cloudbase-cli 写测试用例,并且要保证覆盖率! 这里主要以 vemojs 下的测试用例为主来讲解 Jest 要注意的地方。...errror.js 等文件,对应的是单元功能测试 以 cloudbase.js 文件为代表的,需要请求远程 API,模拟不同的情况 以 index.js 中的 http 和静态服务器为代表的,测试服务是否正常启动...以 index.js 中的 websocket 服务为代表的,模拟用户使用环境,测试 ws 是否正常 提供测试覆盖率 针对以上问题,解决思路总结如下: 函数功能测试:断言匹配功能 请求 API:mock...模块和函数,例如测试用例中的 axios 就是被 mock 的 http 和静态服务:测试代码中启动服务后,利用 axios 等第三方请求库请求服务 websock 服务:借助 puppeteer...(内置无头浏览器)来模拟用户使用,监听数据变动 jest 自带覆盖率统计工具 测试过程 针对上面的步骤以及核心的 jest 配置,分别做讲解。

    3.4K10

    使用Jest测试原生TypeScript项目

    transform 就是专门用来匹配各种文件后缀,然后进行对应的预处理,你可以理解为webpack里的loader 我在TS中引入了.css文件咋办?...关于rootDir 在进行技术选型的过程中,我看了最新版本的vue-cli里推荐用哪些框架进行测试,一个是jest,还一个是krama+mocha。...并且是唯一性的,测试用例可靠性也有保障。之后我们就只需要配合一个CI,每次提交前跑一边我们的测试代码,所有用例测试成功即可pr,否则直接被拒绝。...写完了测试,给我们的jest.config 多加一行配置,来生成我们的测试报告(Jest内置了 istanbul) javascript module.exports = { // ... collectCoverage...总结 至此,你应该对前端UI测试应该大致有一个宏观的了解。 本文没有过多得介绍Jest的用法或者语法,希望可以给不知道如何做测试的朋友们一点方向,自己去尝试找到适合自己项目的才是最好的。

    2.9K60

    使用jest进行单元测试

    jest的相关配置 package.json中相关scripts 这里笔者罗列了常用的通用的一些关于jest的脚本,后面测试结果会陆续补充一些测试脚本,以上的脚本都编写在package.json文件下的...测试覆盖率 在package.json中的scripts下配置"test:coverage": "jest --coverage"后,然后执行相应脚本,就会在根目录输出一个coverage文件夹,里面包含了相应的测试脚本...html显示 执行 npm i jest-html-reporter安装这个模块包(这里提及一下,在npm版本大于5.x以后,可以默认不加--save这种参数),然后在jest.config.js中配置如下...json显示 在package.json中配置scripts脚本"test:exportJson": "jest --json --outputFile=....,它支持字符串和正则,/^(\w+)\1+$/匹配的是一个字符串可以由其字串通过n次组合而成的字串(leetcode一道题目),所有其匹配到的是tao。

    3.6K60

    Jest中Mock网络请求

    Jest中Mock网络请求 最近需要将一个比较老的库修改为TS并进行单元测试,修改为TS还能会一点,单元测试纯粹是现学现卖了,初学Jest框架,觉得在单元测试中比较麻烦的就是测试网络请求,所以记录一下Mock...npm run test:demo3: 使用Jest中的库完成demo2的实现。...使用了JSDOM模拟的浏览器环境,在jest.config.js中配置的setupFiles属性中配置了启动文件test/config/setup.js,在此处初始化了JSDOM。...的mockImplementation demo3通过npm run test:demo3即可尝试运行,在demo2中的例子实际上是写复杂了,在Jest中Mock Functions有mockImplementation...在这里就使用到了jest-axios-mock-server库,首先我们需要指定三个文件,分别对应每个单元测试文件启动前执行,Jest测试启动前执行,与Jest测试完成后执行的三个生命周期进行的操作,分别是

    3.4K30

    React单元测试:Jest + Enzyme(一)

    Jest是Facebook开发的一个测试框架,它集成了测试执行器、断言库、spy、mock、snapshot和测试覆盖率报告等功能。...extensions;moduleDirectories对应webpack中的modulesDirectories;moduleNameMapper对应webpack中的alias。...jest __jest__/__tests__" } 此时在命令行输入npm run test,出现以下结果,说明Jes安装成功并通过第一个测试: 总结 按照上面说的步骤,如果一切顺利,你的第一个单测用例应该成功跑起来了...我们来回顾下我们都做了些什么: 安装Jest并让其支持ES6语法 新建对应的单测文件夹并新建一个单测文件 针对项目的webpack做相应的Jest配置 配置运行测试脚本 万事开头难,你已经踏出万里长征的第一步了...在下一篇文章中,我将会详细介绍如何使用Jest来mock方法和数据,敬请期待。

    1.5K20

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

    前言:之前对于单元测试仅仅处于了解的状态,并且在实际开发中并没有用到。...下面会根据各种场景进行分析 二、异步函数 在我们实际开发中我们会遇到很多异步函数,但是因为Jest在进行测试时,默认情况下一旦到达运行上下文底部当前测试立即结束,这样意味着测试将不能按照我们的预期进行,...我们难免会遇到使用setTimeout\setInterval,刚刚在异步用例中wait函数其实就是通过setTimeout进行包装的,这个示例中我们重点分析应该如何测试定时器。...这里分别使用了jest.spyOn和jest.Mock两个方式对同一个方法进行3种不同编写方式的测试,在实际情况中我们应该选择合适的方法。...,在实际开发中我对于测试原则做了一些总结: 减少面向实现细节设计测试,转而使用面向行为来测试(BDD)。

    10.4K20

    React单元测试:Jest + Enzyme(二)

    前言 在上一篇教程中,我们成功搭建了基于Jest和Enzyme的单元测试框架并成功地跑起来第一个单元测试,可以点击这里回顾一下。今天,我们重点讨论如何通过Jest来mock数据。...在上一篇文章中,就用到了mock功能来忽略对多媒体文件和字体文件等的请求: "jest": { ... "moduleNameMapper": { "\\...._/__mocks__/fileMock.js", ... } } 当遇到.jpg等文件时,就会执行fileMock.js的代码,简单的返回一个字符串: module.exports...在上面的例子中,componentDidMount方法里就包含了请求api的方法。 总结 通过上面的步骤,就可以写出一个简单的模拟网络请求的单元测试了。...更多的Jest+enzyne用法,请期待下一期的文章

    1.5K20
    领券