首页
学习
活动
专区
圈层
工具
发布

使用Jest测试包含setTimeout调用的函数踩坑记录

,在上述代码执行后,后一个expect语句却判定失败了: [image-20210823192022660.png] 而如果将await delay(3000)改为await delay(4000),用例就可以通过...是不是两次setTimeout调用的顺序不对呢?...虽然从错误信息中我们知道可以通过jest.setTimeout来修改这个默认超时时间,但这个测试用例在实际运行的时候也的确需要等待6s,如果我们有什么测试用例需要等待几分钟甚至几小时,那总不能在CI上卡个几小时等待用例通过吧...在启用fake timer的时候,setTimeout、setInterval都会使用Jest提供的假实现,他们不会真正阻塞住测试用例。...相应地,Jest还提供了advanceTimersByTime函数,可以将Jest运行测试用例时的假时钟向前拨动,并“按时”运行之前通过setTimeout、setInterval传入的回调。

8.2K60

用 Jest 进行 JavaScript 测试

创建一个新文件夹并用以下命令初始化项目: mkdir getting-started-with-jest && cd $_ npm init -y 接下来安装Jest: npm i jest --save-dev...让我们用大写搜索词强调函数: function filterByTerm(inputArr, searchTerm) { return inputArr.filter(function(arrayElement...如果你想保持代码覆盖率始终处于活动状态,请在 package.json 中配置Jest,如下所示: "scripts": { "test": "jest" }, "jest": {...Jest 可以顺利地测试 React 应用(Jest 和 React 均来自 Facebook 的工程师)。Jest 也是 Create React App 中的默认测试器。...要了解有关 UI测试的更多信息,我强烈建议你查看用 Cypress 进行 JavaScript 端到端测试【https://www.valentinog.com/blog/cypress/】。

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

    用Jest做前端单元测试

    倒也不是说前端单元测试一无是处,对于我们平常的业务功能测试可能没啥用,但对于框架作者来说还是很有用的,在很多知名的框架代码里我们也都能看到专门的test测试目录。...市面上比较常见的前端单元测试 Jest、Mocha,各种对比 Jest 略胜一筹,所以下面就来初体验下 Jest 吧。...Jest 安装和使用直接新建个目录用 npm 安装就可以写个 demo 了,Jest 官方文档上也有教程。...# 初始化npm init# 安装(也可以全局安装)npm install --save-dev jest#测试:注意先要在 package.json 里加上"scripts": { "test": "...jest" }npm run test求两个数字之和的 sum.jsfunction sum(a, b) { return a + b}module.exports = sum测试脚本文件 sum.test.js

    61420

    用 jest 单元测试改善老旧的 Backbone.js 项目

    升级测试框架 和之前文章中的例子相同,本次依然采用 Jest 作为测试框架。...的单元测试并不严谨,依赖了提供 mock 数据的 php 服务器环境 三是由于视图层没有很好的组件化,从而缺乏对视图组件的测试 jest for Backbone 的实践 jest 是比较新的测试框架...根据目标项目的情况采用了 enzyme-adapter-react-13 做适配 用 cross-env 设置环境变量 test,从而配置出适用于 jest 的 .babelrc 文件,且不影响生产环境...,使其能方便的应用于各种类型既有项目的 TDD 开发和重构 之前的其他测试框架下的用例,可以快速迁移到 jest 中 Backbone.View 视图组件在经过 ES6 升级和合理封装后,可以明显改善页面的整洁度...,并顺利应用于单元测试 可以用 sinon.createFakeServer() 拦截 Backbone.Model 中的异步请求 原来用 Require.js 下的 text.js 组件引入的模板,也可以用

    4.4K10

    JavaScript 测试教程 part 1:用 Jest 进行单元测试

    JavaScript测试教程-part 1:用 Jest 进行单元测试 2. JavaScript测试教程–part 2:引入 Enzyme 并测试 React 组件 3....对于给定的输入,用单元测试检查结果,通过尽早发现问题并避免退化,可以帮助你确保程序的每个部分都能按预期工作。 集成测试 即使你的所有单元测试都通过了,也只能代表每个部分可以正常工作。...多亏了他,你可以用一种方法来确保你的代码在整体上能够正常运行。 端到端测试(E2E) 与其他类型的测试相反,端到端测试始终在浏览器(或类似浏览器)环境中运行。...用 Jest 进行单元测试 Jest 是 Facebook 开发的测试框架。它的目标之一是通过现成可用的工具提供“零配置”体验。它已经存在了一段时间,并且快速可靠。...divide.js 1function divide(a, b) { 2 return a / b; 3} 4module.exports = divide; Jest 用正则表达式确定要测试的文件。

    3.6K20

    用深度学习做个艺术画家 ——模仿实现PRISMA

    机器学习初探艺术作画 好的艺术家模仿皮毛,伟大的艺术家窃取灵魂。 ——毕加索 本节介绍机器学习作画的简单原理,并展示输出效果。...图9-3 原图 下面我们用这几个浅层神经元对原图风格化的效果进行展示(备注:代码实现见本书Git库),如图9-4所示。...图9-5 机器艺术作画效果图 一个有意思的实验 如果用Prisma做出一个图像,然后将它作为特征图像去引导新的图像生成会有什么效果呢?...图9-15 抽取效果图 下面用IPython Notebook的可交互形式更直观地看一下特征的抽取与放大。...本节的代码并没有过多关心运行效率等问题,比如针对图像保存读取scipy.misc比用PIL的实现方式效率要高得多,但为了代码可读性,本书选择使用PIL。

    2K40

    在Windows上用Java代码模仿破解WIFI密码【大牛经验】

    在网上找了很多wifi破解工具,都是linux平台下用的,然后还不支持虚拟机装linux。因为很多笔记本装虚拟机都识别不了内置网卡。所以得把系统刻到U盘,然后用U盘启动。...首先扫描附近的WIFI,返回所有WIFI的信息,包括SSID、加密方式、信号强度(信号太弱的,我们就不进行破解了,破解了也没啥用)。扫描其实就是执行一个CMD命令的问题,先封装一个CMD执行器吧。...这一步我开启了多线程,去验证,有人说为什么用多线程,明明验证方法都 synchronized 了,我想说的是,单线程的话,之间总会有间隙的,所以为了压榨那一点点时间,我用了多线程。...用这个程序跑了40多秒,开了一个wifi的密码 12345678。耶成功了终于可以用了。 然后根据密码,把自家路由器设置一个桥接模式。家里处处都有网了。 六、或者放弃 或者,你也可以放弃。

    11.8K20

    记录第一次给开源项目提 PR

    onFinally: () => { // 省略部分代码... // 通过 setTimeout 进行轮询 timerRef.current = setTimeout(() => {...== -1 && countRef.current <= pollingErrorRetryCount) ) { // 忽略部分代码 timerRef.current = setTimeout...最终用例如下: // 省略部分代码... // if request error and set pollingErrorRetryCount // and the number of consecutive...我们需要点击图中框起来的「Compare & pull request 」,之后就会出现如下图 图来自网络,演示用 默认会帮我们选好分支的,我们只需要完善其中的信息,还有我们之前提交的 message...最好可以用英文来解释,本次提交的内容。 最后点击提交之后就好了。 还有一个提 PR 的入口,如下所示: 最后等待官方 CR 就可以了(上面的实现其实部分是 CR 后改的)。

    83411
    领券