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

【Bun1.0】使用 Bun.js 构建快速、可靠安全的 JavaScript 应用程序

babel,.babelrc,@babel/preset-* ts-node,ts-node-esm tsx 打包工具 - Bun 是一个 JavaScript 打包工具,具有最佳性能与 esbuild...兼容的测试运行器,支持快照测试、模拟代码覆盖率,因此您不再需要: jestjest.config.js ts-jest,@swc/jestbabel-jest jest-extended vitest...它们执行了许多冗余工作;当您运行 jest ,您的代码将被各种工具解析 3 次以上!而为了将所有东西粘合在一起所需的胶带、插件适配器总是会在最终磨损。...当运行 TypeScript 文件,这种差异只会被放大,因为需要将其转译为 Node.js 可以运行的代码。...Bun.js 基于 Node.js,因此可以在支持 Node.js 的所有操作系统上运行,包括 Windows、macOS Linux。

70030

前端接入单元测试(Node+React)

在开发新框架,直接运行老前端框架的单侧用例,如果所有测试用例都通过,则可快速保证内部api的一致性,快速验证所有功能。...主流测试工具比较框架断言仿真快照异步测试Mocha默认不支持,可配置默认不支持,可配置默认不支持,可配置友好Ava默认支持支持,需第三方配置默认支持友好Jasmine默认支持默认支持默认支持不友好Jest...AvaAva 是更轻量高效简单的单测框架,但是自身不够稳定,并发运行文件多的时候会撑爆 CPU。JasmineJasmine 是单测框架的“元老”,开箱即用,但是异步测试支持较弱。...JestJest 基于 Jasmine, 做了大量修改并添加了很多特性,同样开箱即用,但异步测试支持良好。...node测试框架因为egg内置Mocha,因此不额外引入jestJest 被各种 React 应用推荐使用。

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

如何做前端单元测试

从 github starts & issues 以及 npm 下载量角度来看,Jest 的关注度更高,社区也更活跃 框架对比 框架 断言 异步 代码覆盖率 Mocha 不支持(需要其他库支持) 友好...不支持(需要其他库支持Jest 默认支持 友好 支持 Mocha 生态好,但是需要较多的配置来实现高扩展性 Jest 开箱即用 比如对 sum 函数写用例 ....方式 Jest 默认支持断言,同时默认支持覆盖率测试 ....想要使用 import,必须引入 babel 转义支持,通过 babel 进行编译,使其变成 node 的模块化代码 如以下文件改写成 ES6 写法后,运行 npm run test将会报错 ....": ["@babel/preset-env"] } 再次运行 npm run test ,问题解决 原理 jest 运行时内部先执行( jest-babel ),检测是否安装 babel-core

3.2K20

单元测试

这将完成以下工作 配置工程 jest.config.js 添加测试脚本到 v6 package.json 中 更新babel配置,支持单测编译环境 更新 eslint 配置,支持单测代码检查 安装单测环境依赖包...中 更新babel配置,支持单测编译环境,默认检测 babel.config.js 文件,如果存在babel配置文件,文件名需要保持一致(文件名规则对齐V6工程命名规则) 更新 eslint 配置,支持单测代码检查...对于层级较深的组件,需在单测文件中增加注释,说明测试组件所在的路径 运行单测 单测执行 安装 VSCode Jest 运行插件 名称: Jest Runner ID: firsttris.vscode-jest-runner...); // 带上 jest 的类型提示 mockedGet.mockResolvedValue(resp); // 含有 jest 的类型提示 jest 单独运行每一个测试用例都可以通过测试,但是当运行一组测试用例...当你在测试中进行异步操作(例如使用 setTimeout、Promise 等),可以使用 act 来等待异步操作完成后再进行断言。

18710

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

当然,采用 ES6语法 babel 并非一定必要,AMD 也是可以实现测试的。 Backbone.js ?...、绑定事件等的视图组件 在我们的实际项目中,视图层同时支持了 Backbone.View 早期的 react@13,这也正体现了其灵活之处。...", "babel-eslint": "^6.1.2", "babel-jest": "^22.1.0", "babel-preset-es2015": "^6.24.1", "...regenerator-runtime": "^0.11.1", "sinon": "^4.2.2", "grunt-run": "^0.8.0", ... }, 配置两种 npm script,分别用于开发实时运行测试...build 时运行测试 目标项目中,其实是用 babel 5 做的 ES6 转译;但是由于之前的源代码已经全部采用了 ES6 语法开发(部分初始 AMD 代码也做过自动转化),所以我们完全可以在测试采用较新的

3.4K10

写代码无BUG,网易云前端单元测试方案总结

虽然目前很多新版浏览器都支持 了,支持在浏览器中直接运行 ES6 代码,但是浏览器不支持 node_modules ,所以我们的原始 ES6 代码在浏览器上依然无法运行...) 不支持(webpack) 单元测试要在不同的环境下执行就要打不同环境对应的包,所以在搭建测试工具链要确定自己运行在什么环境中,如果在 Node 中只需要加一层 babel 转换,如果是在真实浏览器中...虽然 Jest 提供了很丰富的功能,但是并没有内置 ES6 支持,所以依然需要根据不同运行时对代码进行转换,由于 Jest 主要运行在 Node 中,所以需要使用 babel-jest 将 ES Module...jest 对于 React TypeScript 支持也可以通过修改 babel 的配置解决 npm install @babel/preset-react @babel/preset-typescript...上面的内容介绍了 chai , mocha , karma , jasmine jest, 每种工具分别对应一些自己特有的工具链,在选取合适的测试工具根据实际需要选择, 测试领域还有非常多的工具数都数不过来

9.5K20

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

下面,我将自己在使用JestSinon.js配置编写单元测试中的收获的经验踩到的坑进行总结,根据从零开始配置编写单元测试这一条线来进行分享。...Jest配置 安装依赖包 需要使用Jest,首先你需要进行安装,执行以下命令: npm install jest -D 如果你的项目中存在.babelrc文件(使用了babel 6),不论你测试的代码是否通过...编写单元测试 在本章中,我们会针对如何编写单元测试文件进行一个具体的讲解,其中包含: 同步函数测试 异步函数测试 HTTP测试 同时,我们会对当中使用到的JestSinon.js的API会进行简单介绍...异步函数测试 异步函数主要分为两种——Callback方式Promise方式。这两种方式都很简单,下面我们对两种方式进行具体的介绍。详细内容可以见Jest文档中的测试异步代码。...在本章中,我们总结了如下问题来进行介绍,希望大家再遇到相同问题能够快速解决: 如何统计Jest单元测试覆盖率 如何设置单元测试文件不使用本地的babel配置 如何设置单元测试文件使用本地的babel配置

3.7K00

Vite 2.0 + Vue 3.0 + Test Unit 配置

配置库支持需要如下库支持jest jest 的核心babel-jest .js/.jsx/.tsx 文件支持需要@babel/core babel-jest 依赖,babel 核心ts-jest .ts...文件支持需要@types/jest TS 类型支持vue-jest@next .vue 文件支持需要@vue/test-utils@next .spec/.test 渲染 components 以及...vue 运行支持需要@babel/preset-env jest支持 ES6/ESM 模块规则,用以支持转换@testing-library/jest-dom 支持断言 DOM 的状态以及 class...等相关内容依赖说明以及相关文档 注意: 如果未安装 @babel/preset-env 配置 babel.config.js 那么大概率会出现报错 由于 Jest 运行在 Node 环境 中,所以并不支持...$": "babel-jest" },};复制代码完成以上步骤之后就可以在 package.json 添加 jest 运行命令了"scripts": { "jest:unit": "jest"}复制代码项目根目录下创建如下文件夹结构

1.4K21

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

Jest 修改全局对象,可能导致测试出现意外行为。 instanceof 操作符在 Jest 中不总是按预期工作。 Jest 增加了项目的依赖负担,使得维护第三方依赖管理安全问题更加困难。...由于额外开销,Jest 可能比原生 Node.js 测试运行器更慢。 Node.js 测试运行器的其他优秀功能包括子测试并发测试。...在需要避免在测试中运行实际代码(如 HTTP 请求或文件系统 API),它们非常有用,可以用存根模拟来替代这些操作,并在稍后进行检查。...此外,Corepack 提供项目与全局系统的隔离,确保项目在全局包升级或移除依然可运行,提高项目一致性可靠性。 安装使用 Corepack 安装 Corepack 非常简单。...加载多个 .env 文件 Node.js .env 加载器还支持加载多个 .env 文件。当您有不同环境(如开发、测试、生产)的环境变量,这非常有用。

15410

【保姆级】前端使用node.js基础教程

以下是一些 Node.js 中常用的命令:安装版本管理:安装 Node.js:在官方网站下载适合你操作系统的 Node.js 安装包,并按照指示进行安装。...Node.js 脚本:运行脚本文件:node app.js调试开发工具:Node.js 调试器:node inspect app.js使用 nodemon(自动重启工具):首先安装 nodemon:...npm install -g nodemon使用 nodemon 运行脚本:nodemon app.js其他常用命令:查看 npm 包版本:npm list更新 npm 包:npm update <package_name...异步编程包管理:使用 npm scripts 运行自定义脚本:在 package.json 中定义脚本:"scripts": { "start": "node index.js", "test":...node app.js在代码中访问环境变量:const environment = process.env.NODE_ENV;单元测试:使用测试框架(如 Mocha、Jest)进行单元测试:安装测试框架

12010

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

dotenv、cross-env:Bun 默认支持读取.env文件的配置vite、webpack Bun 自带构建功能ts-node、tsx Bun可以直接运行 TypeScript tsx 文件jest...Bun是一个支持Jest的测试运行器,具有快照测试、模拟代码覆盖率等功能,因此不再需要以下测试相关的工具对比 Deno在讨论 JavaScript 运行时的演变,很难忽略 Deno。...事件驱动异步处理:uWebSockets 可能利用了事件驱动异步处理技术来高效地处理大量并发连接,而不会产生很多阻塞或线程上下文切换的开销。...此外,Bun 的运行支持 TypeScript JSX,无需额外的配置或插件。Bun 对兼容性的保证还体现在对 Jest 全局导入的支持上。...总而言之,如果想在真实的项目中使用,Bun 更适合作为 npm jest 的平替。作为构建工具来说,生态还不是太成熟,迁移成本可能比较高。服务端渲染的话,需要先调研一下运行的环境,是否能完美支持

2.3K51

Node.js 正在逐渐被淘汰!Bun 1.0 正在改变 JavaScript 的游戏规则

更具体地说,这个“叙述者”包括了像 JavaScript 引擎这样的组件,这是运行时的核心,负责理解运行你的代码。...因此,使用 Bun ,你不需要 node、nodemon —— 它具有内置的监视模式,dotenv、cross-env —— 它默认读取 .env 文件。...Bun 还可以运行不同的文件,如 .js、.ts、.mjs、.jsx、.cjs .tsx,这意味着现在你不需要在你的项目中安装 babel、tsc、ts-node tsx。...它具有内置的与 Jest 兼容的测试运行器,因此你可以编写单元测试,而无需安装额外的依赖项。...由于它被设计为 Node.js 的直接替代品,它具有对常见的 Node.js 模块(如 path、fs net)、全局变量(如 __dirname)的内置支持

27410

新建NodeJS Web项目的几个最佳实践

一、使用初始化脚手架 所谓脚手架,就是在初始化代码库,脚手架可以帮助自动生成一些代码项目结构,注入一些框架。...二、Swagger文档服务 Swagger是一个最流行的的API构建与管理工具,在各种语言和框架都有相应的库可以支持,同时安装swagger-ui扩展进行API文档管理和在线调试。...2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前旧版本的浏览器或其他环境中。...安装nodemon: npm i -D nodemon 在根目录添加配置文件nodemon.json: { "exec": "npm run dev", "watch": ["src/*", "public...hooks": { "pre-push": "npm run coverage && npm run pact:test" } }, 例子2: 在git commit 之前运行代码风格检查自动纠正 "

2.2K51
领券