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

2024 年必会的 10 个 Node.js 新特性,你还不知道就太落伍了!

原生测试运行器 在 Node.js 引入原生测试运行器之前,我们通常使用 node-tap、jest、mocha 或 vitest 等流行选项。...首先,需要在测试文件中导入 Node.js 的测试模块,如下所示: import { test } from 'node:test'; 接下来,我们将逐步介绍如何使用 Node.js 测试运行器。...使用 node:test 运行单个测试 要创建一个测试,可以使用 test 函数,传入测试名称和回调函数。在回调函数中定义你的测试逻辑。...尽管 Jest 在 Node.js 社区中很受欢迎,但它的某些缺点使得原生 Node.js 测试运行器更具吸引力。...Node.js 20 LTS 中测试运行器和模块模拟功能已经作为稳定功能提供。 我们将使用一个名为 dotenv.js 的实用模块,该模块从 .env 文件加载环境变量。

70210

Bun:不仅是新的JavaScript运行时,并且重塑了JavaScript工具链

Bun是一个支持Jest的测试运行器,具有快照测试、模拟和代码覆盖率等功能,因此不再需要以下测试相关的工具对比 Deno在讨论 JavaScript 运行时的演变时,很难忽略 Deno。...传统上,Node.js 开发人员一直依赖 Jest 或者 Vitest 来进行单元测试,而 Bun 则引入了一个内置测试运行器,保证了速度、兼容性和一系列满足现代开发工作流的功能。...Bun 的测试运行器 bun:test 设计为与 Jest 完全兼容,确保了熟悉 Jest 的开发人员可以轻松过渡到 Bun。...Bun 对兼容性的保证还体现在对 Jest 全局导入的支持上。例如,从 @jest/globals 或 vitest 导入的内容将在内部重新映射到 bun:test。...性能测试Bun 的测试运行器不仅注重兼容性,还注重速度。在针对 Zod 测试套件的基准测试中,Bun 的速度比 Jest 快 13 倍,比 Vitest 快 8 倍。

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

    用 Jest 进行 JavaScript 测试

    Jest 是一个 JavaScript 测试运行器,即用于创建、运行和结构化测试的 JavaScript 库。Jest 作为 NPM 包发布,你可以将其安装在任何 JavaScript 项目中。...如果你正在编写 Web 应用,那么一个好的起点就是测试应用的每个页面和每个用户交互。但 Web 应用也由单元代码组成,如函数和模块,也需要进行测试。...以下是典型测试流程的样子: 导入要测试的函数 给函数输入 定义期望输出 检查函数是否按照预期输出 就是这样。如果你按照这些术语思考,测试不再可怕:输入 - 预期输出 - 断言结果。...作为一个精通测试的 JavaScript 开发人员,你想要遵循测试驱动开发,这是一个强制在开始编码之前编写失败测试的学科。 默认情况下,Jest 希望在项目下名为 tests 的文件夹中找到测试文件。...在一个实际项目中,你需要在另一个文件中定义该函数并从测试文件中导入它。 为了进行测试,我们将使用一个名为 filter 的原生 JavaScript 函数,它可以过滤掉数组中的元素。

    2.7K30

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

    .png   Vue Test Utils和Jest   在本教程中,我们将使用Vue Test Utils——官方Vue.js测试工具包,以及Jest,一个由Facebook支持的JavaScript...它有测试单个文件组件所需的所有实用程序,包括使用Vue Router或Vuex的实用程序。   Jest是一个功能齐全的测试运行器,几乎不需要配置。它还提供了一个内置的断言库。   ...设置spec文件   与常规测试一样,每个组件都有一个spec文件,用于描述我们要运行的所有测试。   规范是JavaScript文件。...继续创建一个test/unit/Rating.spec.js文件:   4aea51aa75dc9fd742ac5b45450ae3c5.png   我们已经导入了Rating组件和shallowMount...后者是Vue Test Utils的一个功能,它允许我们挂载我们的组件而不挂载它的子组件。   describe函数调用包含了我们即将编写的所有测试-它描述了我们的测试套件。

    2.1K20

    你不知道的 Vue 单元测试(6000字实战单元测试)

    主流的单元测试运行器有很多,比如 Jest、Mocha 和 Karma 等,这几个在 Vue-Test-Utils 文档里都有对应的教程,这里我们只介绍 Vue-Test-Utils + Jest 结合的示例...❝Jest 是一个由 Facebook 开发的测试框架。Vue 对其进行描述:是功能最全的测试运行器。它所需的配置是最少的,默认安装了 JSDOM,内置断言且命令行的用户体验非常好。...不过你需要一个能够将单文件组件导入到测试中的预处理器。我们已经创建了 vue-jest 预处理器来处理最常见的单文件组件特性,但仍不是 vue-loader 100% 的功能。...❞ 环境配置 通过脚手架 vue-cli 来新建项目的时候,如果选择了 Unit Testing 单元测试且选择的是 Jest 作为测试运行器,那么在项目创建好后,就会自动配置好单元测试需要的环境,直接能用...describe(name, fn) 这边是定义一个测试套件,test ToDoList 是测试套件的名字,fn 是具体的可执行的函数 it(name, fn) 是一个测试用例,输入框初始值为空字符串

    11.5K41

    Jest测试语法系列之Globals

    afterAll(fn, timeout) 此API的意思是,它是在所有测试运行完之后才会执行的,如果你的测试中包含promise,则将会等待promise被验证之后被执行。...afterEach(fn, timeout) 在该文件中的每一个测试完成后运行一个函数,如果函数返回一个promise,Jest会等待该promise在继续之前解决。...beforeAll(fn, timeout) 在该文件运行的任何测试之前运行一个函数,如果函数返回一个承诺,则Jest会等待在运行测试之前解决这个问题。...beforeEach(fn, timeout) 在该文件运行的每个测试之前运行一个函数,如果函数返回一个promise,Jest将等待该承诺在运行测试之前解决。...如果在一个描述块内部,它运行在描述块中的每个测试。如果你只需要运行一些设置代码,在任何测试运行之前,就使用之前的所有代码。

    1.1K30

    WebStorm for Mac(JavaScript开发工具)中文版

    在TypeScript文件中,弹出窗口还将列出导入此文件的所有符号。...CSS的浏览器兼容性检查要检查目标浏览器版本是否支持您使用的所有CSS属性,可以在首选项中启用新的 浏览器兼容性检查。...对CSS模块的Camel案例支持如果在项目中使用CSS模块,JavaScript文件中的类的代码完成现在将建议带有破折号的类名的驼峰版本。...在悬停时,您将看到来自测试运行器的错误消息,您可以立即开始调试测试。使用Cucumber和TypeScript进行测试使用Cucumber和TypeScript?...改进了对短绒的支持WebStorm现在可以 在一个项目中为ESLint和TSLint运行多个进程,以确保它们在单个项目和具有多个linter配置的项目中正常工作 。

    5K50

    React 组件测试技巧

    注意: 此页面假设你正在使用 Jest 作为测试运行器。如果你使用不同的测试运行器,你可能需要调整 API,但整体的解决方案是相同的。在测试环境页面阅读更多关于设置测试环境的细节。...创建/清理 act() 数据获取 mock 模块 事件 计时器 快照测试 多渲染器 缺少什么?...React 提供了一个名为 act() 的助手,它确保在进行任何断言之前,与这些“单元”相关的所有更新都已处理并应用于 DOM: act(() => { // 渲染组件 }); // 进行断言 这有助于使测试运行更接近真实用户在使用应用程序时的体验...; }); --- 数据获取 {#data-fetching} 你可以使用假数据来 mock 请求,而不是在所有测试中调用真正的 API。...用虚拟替换来 mock 这些模块可以使你为代码编写测试变得更容易。

    4.9K00

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

    最典型的测试流程如下所示: 导入要测试的函数 给函数一个输入 定义期望的输出 检查函数是否产生预期的输出 一般,就这么简单。...,为了测试在同一个文件夹中创建一个测试文件,命名为 test.spec.js,这特殊的后缀是 Jest 的约定,用于查找所有的测试文件。...), }); 这是一个简单模拟的示例,模拟了 fs 模块 readFile 函数在测试特定业务逻辑的返回值。...怎么模拟一个函数 接下来我们就要研究一下如何实现,首先是 jest.mock,它第一个参数接受的是模块名或者模块路径,第二个参数是该模块对外暴露方法的具体实现 const jest = { mock...afterEachBlock.forEach(async (afterEach) => await afterEach()); }); 而 beforeAll 和 afterAll 就可以放在,testBlock 所有测试运行完毕前和后

    7.9K20

    对 Vue-Router 进行单元测试

    ,一般会创建一个 router.js 文件并导入定义好的路由,写出来一般是这样的: import Vue from "vue" import VueRouter from "vue-router" import...可以在 测试中使用一个相同的 localVue,并将其声明在第一个 describe 块之外。而由于要为不同的路由做不同的测试,所以把 router 定义在 it 块里。...如果你在用 Jest,其强大的 mock 系统为此提供了一个优雅的解决方法。可以简单的 mock 掉子组件,在本例中也就是 。...在 router 实例上声明 组件内 guards,比如 beforeRouteEnter。在组件中声明 要确保这些运作正常,一般是集成测试的工作,因为需要一个使用者从一个理由导航到另一个。...用 jest.mock 来 mock 一个模块

    2.2K10

    编写跨运行时的 JavaScript 程序

    对标法 但是仅凭这些在 Node.js 庞大的生态市场面前,就是蚍蜉撼树: 事实对标法 所以,Deno 还是向现实低了头,在 Deno 1.28 开始就支持导入 npm 模块、Node.js 内置模块...它也才发布一年多,在我落笔的此刻,它刚好也发布了 1.0 版本。 它的宣传点就是 —— 快 它的目的很简单,就是为了取代 Node.js,就是要提供一个更快的运行时,消灭现在复杂的开发乱象。...同时尽量不影响现有的框架和程序的运行(兼容 Node.js) 用”兼容并包”来描述它最好不过,比如它同时支持 ESM 和 CommonJS,甚至允许这两个模块在一个文件中并存,而现在主流的观点是 CommonJS...是一个过时的技术。...拳打 Vite、脚踢 rollup、深度碾压 Webpack 测试运行器。Vitest、Jest 在它面前就是弟弟 … 大有一番一统天下的架势(取代 Node、npm、webpack、jest 等)。

    32420

    Vue Test Utils处理异步行为

    Vue 是被动更新的:当你更改一个值时,DOM 会自动更新以反映最新的值。Vue 以异步方式执行这些更新。相比之下,像 Jest 这样的测试运行程序则是同步执行代码的。...也许你使用 jest.mock 模拟了你的 axios HTTP 客户端:jest.spyOn(axios, 'get').mockResolvedValue({ data: 'some mocked...对于这种情况,Vue Test Utils 提供了 flushPromises,使所有未完成的 Promise 立即解决。...由于我们在测试中定义并装载了一个新组件,因此 mount(TestComponent) 返回的包装器包含其自己的(空)vm。总结Vue 异步更新 DOM,而测试运行程序是同步执行代码的。...使用 Suspense 在异步测试函数中测试异步 setup 组件。通过这些策略,你可以确保 Vue 组件在测试时按预期更新和运行,从而获得可靠的测试结果。

    7900

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

    我们在这里用了 Jest,不过 Enzyme 也可以与 Mocha 和 Chai 之类的库一起使用。 Enzyme 基础 Enzyme 是一个库,用于在测试时处理你的 React 组件。...这里要注意一个非常重要的点:即使我们用了 Enzyme,但测试运行程序仍然是 Jest。由于我们用的是 expect 函数,因此可以使用各种可供调用的匹配器函数。我已经在课程的第一部分中提到了它们。...在第一个测试中,我们使用了 toContainReact 函数,这是一个自定义匹配器函数。它是 enzyme-matchers 库的一部分。...要将其与 Jest 一起使用,请安装 jest-enzyme 包。 1npm install jest-enzyme 最后要做的是将其导入 setupTests 文件中。...运行所有的测试会给我们带来成功的信息!

    1.4K50

    web前端好帮手 - Jest单元测试工具

    本文介绍如何使用Jest覆盖Web前端单元测试、如何统计测试覆盖率,Jest对比Mocha等内容。 Jest是什么? ? Jest是一个令人愉快的 JavaScript 测试框架,专注于简洁明快。...Jest钩子只对所在分组下的测试生效,比如: // 在文件全局作用域下,对该文件中所有测试用例生效afterEach(() => {...}); describe("group-A", () => {...Jest并发实例注意事项 当初Jest推出的亮点之一就是运用并发优势大大加快了测试运行速度。Jest默认情况下是开启并发的,我们不需要另外配置启用就能享受测试的高速便利。...node_modules/jest/bin/jest.js --runInBand" }} --runInBand参数让Jest在同一个进程下运行测试,方便我们断点调试。...Mock很关键也很常用,大家可以参考下官方文档,了解下面的场景并实际运用到项目: mock函数 捕获运行情况 定义函数实现 mock模块 自动mock模块 自定义模块 单元测试之于开发 开发掌握单元测试

    5K40

    前端自动化测试

    技术选型 目前前端整体的测试框架较为常用的有: Jest Mocha Jest 源自Facebook,Jest 的一个理念是提供一套完整集成的 “零配置” 测试体验。...包含单元测试运行器、断言库、Mock库 内置代码覆盖率报告 可以与Typescript一同使用 零配置,开箱即用 Mocha 仅仅是测试运行器,虽然灵活,但需要自己配置很多东西。...这里可以首先简单的看一下,Jest+Enzyme的基本语法: Jest的API更多着力于定义测试、断言、mock库 定义测试: describe: 定义一个测试套件(test suite) it: 定义一个测试...(test) beforeEach: 定义一个回调函数在每个测试之前执行 expect: 执行一个断言 jest.fn(): 创造一个mock函数 一些用于断言的方法: toEqual: 验证两个值是否相同...toBe: 验证两个值是否 === 完全相等 toHaveLength:验证长度 toBeDefined: 验证一个值是否被定义 toContain: 验证一个list中是否包含某一项 toBeCalled

    2K20
    领券