网站销售方案广告设计软件免费下载

diannao/2026/1/19 13:43:38/文章来源:
网站销售方案,广告设计软件免费下载,微商城电商系统开发商,自己怎么做入网站回收书报引言 在Node.js开发过程中#xff0c;测试是确保代码质量和功能正确性的关键步骤。单元测试和集成测试是最常见的测试类型。下面我们将使用Jest框架来进行测试。 单元测试 单元测试是指对软件中的最小可测试单元进行检查和验证。在Node.js中#xff0c;这通常指的是函数或者…引言 在Node.js开发过程中测试是确保代码质量和功能正确性的关键步骤。单元测试和集成测试是最常见的测试类型。下面我们将使用Jest框架来进行测试。 单元测试 单元测试是指对软件中的最小可测试单元进行检查和验证。在Node.js中这通常指的是函数或者模块。 安装Jest 首先你需要在你的Node.js项目中安装Jest。通过npm可以轻松安装 npm install --save-dev jest配置Jest 在package.json文件中添加以下Jest配置 {scripts: {test: jest} }这样你就可以通过运行npm test命令来执行测试了。 编写单元测试 假设我们有一个简单的函数add我们想要测试它 // js/add.js function add(a, b) {return a b; }module.exports add;为了测试这个函数我们创建一个测试文件add.test.js // test/add.test.js const add require(../js/add);test(adds 1 2 to equal 3, () {expect(add(1, 2)).toBe(3); });在上面的代码中我们使用test函数定义了一个测试用例然后使用expect和toBe来进行断言。 运行单元测试 运行以下命令来执行测试 npm testJest将自动找到所有的测试文件并执行它们。 集成测试 集成测试是指测试应用程序中多个模块或服务协同工作的情况。在Node.js中这通常涉及到数据库操作、网络请求等。 编写集成测试 假设我们有一个简单的Express服务器我们想要测试它的一个端点 // test15.js const express require(express); const add require(./add);const app express();app.get(/add, (req, res) {const { a, b } req.query;res.send({ result: add(Number(a), Number(b)) }); });module.exports app;我们可以使用Jest和supertest来测试这个端点 npm install --save-dev supertest创建一个测试文件test15.test.js // test/test15.test.js const request require(supertest); // 引入supertest库用于对HTTP请求进行模拟 const app require(./test15); // 引入我们的Express应用// 使用describe定义一个测试套件其中包含了多个测试用例 describe(GET /add, () {// 使用it定义一个测试用例测试GET /add端点it(responds with json containing the sum of a and b, (done) {request(app) // 使用supertest对app发起请求.get(/add) // 指定请求类型为GET并设置请求路径为/add.query({ a: 1, b: 2 }) // 设置请求查询参数a1b2.expect(Content-Type, /json/) // 预期响应头Content-Type为json类型.expect(200) // 预期响应状态码为200.then(response { // 请求成功后获取响应对象expect(response.body.result).toBe(3); // 使用expect断言响应体中的result值为3done(); // 调用done回调函数表示测试结束}).catch(err done(err)); // 捕获异常如果有异常通过done传递给Jest处理}); });在这个测试文件中我们使用了describe和it来组织我们的测试代码。describe定义了一个测试套件它是一系列相关测试用例的集合。it则定义了一个具体的测试用例。 我们通过supertest库来模拟发起HTTP请求并通过链式调用来设置请求的具体参数和预期的响应。通过.expect方法可以设置对响应的预期例如预期的响应头和状态码。.then方法用于处理请求成功的情况我们在其中使用expect来进行断言验证响应体是否符合预期。 最后我们使用done回调来告诉Jest这个异步的测试用例何时完成。如果请求过程中出现异常我们通过.catch捕获异常并通过done将错误传递给Jest以便Jest可以正确地标记这个测试用例失败。 运行集成测试 和运行单元测试一样你只需要执行 npm testJest同样会执行集成测试。 jest高级运用 我们来实现一个异步函数的测试该函数从某个API获取数据并使用mock功能来模拟API调用。这样可以在不实际进行网络请求的情况下测试函数的逻辑。 异步数据获取函数 假设我们有一个函数fetchData它从一个假设的API https://api.example.com/data 获取数据 // test15-2.js const axios require(axios); // 引入axios库用于发起HTTP请求async function fetchData() {const response await axios.get(https://api.example.com/data); // 使用axios向API发起GET请求return response.data; // 返回响应体的数据 }module.exports fetchData;编写测试并使用Jest Mock 为了测试这个异步函数而不实际发起网络请求我们将使用Jest的mock功能来模拟axios库。 // test/test15-2.test.js jest.mock(axios); // 告诉Jest模拟axios模块 const axios require(axios); // 引入axios const fetchData require(../test15-2); // 引入我们的fetchData函数// 定义测试套件 describe(fetchData, () {// 定义一个测试用例测试fetchData是否能正确处理数据it(fetches successfully data from an API, async () {const mockData { data: some data }; // 定义模拟的API响应数据axios.get.mockResolvedValue(mockData); // 使用mockResolvedValue来模拟axios.get方法的成功返回await expect(fetchData()).resolves.toEqual(some data); // 使用resolves来测试Promise是否被成功解析期望fetchData的结果等于some data});// 定义另一个测试用例测试在API请求失败时的行为it(fetches erroneously data from an API, async () {const errorMessage Network Error; // 定义模拟的错误消息axios.get.mockRejectedValue(new Error(errorMessage)); // 使用mockRejectedValue来模拟axios.get方法的失败返回await expect(fetchData()).rejects.toThrow(errorMessage); // 使用rejects来测试Promise是否被拒绝并且抛出了错误消息}); });在这个高级示例中我们首先使用jest.mock来告诉Jest我们想要模拟axios模块。这样当我们在测试中调用axios.get时实际上调用的是一个Jest提供的模拟函数而不是真正的axios.get。这使得测试既快速又独立于外部系统。 通过mockResolvedValue和mockRejectedValue我们可以控制模拟的axios.get方法在被调用时返回一个成功的Promise或一个失败的Promise从而测试我们的fetchData函数在不同情况下的行为。 这种方式非常适合测试依赖于异步数据获取的函数无需担心网络延迟或服务不可用的问题同时也能确保测试的准确性和可重复性。 运行测试 总结 通过上述步骤我们学习了如何在Node.js项目中使用Jest进行单元测试和集成测试。单元测试帮助我们验证各个独立模块的功能而集成测试确保这些模块能够协同工作。Jest是一个功能强大的测试框架它提供了丰富的API来编写和运行测试用例。通过这些测试我们可以提高代码的质量和稳定性。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/90337.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站版权问题施工企业安全生产责任制度范本

C程序编译、链接与项目构建 摘要C编译环境静、动态库介绍gcc与g和程序编译、链接Visual Studio创建和链接库动态库的显示调用 Make介绍安装使用 CMake介绍安装使用构建方式内部构建外部构建构建使用静/动态库常用[系统]变量常用指令CMake模块 Make与CMake的联系与区别 摘要 本…

asp.net网站开发 vs2017帝国cms网站搬家

文章目录 一、安装宝塔二、vue项目部署三、node项目部署 前言: 关于项目部署,一开始也是找了很多资料,费了点时间,所以记录一下。希望能对各位有所帮助。 一、安装宝塔 1.首先在控制台,进入云服务器的终端界面 2.输入命令和密码获取权限,并且安装宝塔界面 yum install -y w…

质感网站系统下载 锐狐免费域名网站申请

jvm gc,gc算法如前一篇文章中所述,HotSpot JVM中有四个可用的垃圾收集器。 它们之间有一些显着差异,但是用于完成实际工作的算法背后的实际概念非常相似。 在这篇简短的文章中,我将尝试解释三种基本算法: 打标 打标紧凑 标记复…

地方门户网站如何推广wordpress升级

文章目录 1.1.单体架构1.2.分布式架构1.3.微服务1.4.SpringCloud1.5.总结 随着互联网行业的发展,对服务的要求也越来越高,服务架构也从单体架构逐渐演变为现在流行的微服务架构。这些架构之间有怎样的差别呢? 微服务架构是一种架构模式&…

英语不好的做网站运营可以吗百度浏览器官网

无极低码 :https://wheart.cn 引言 正则表达式(Regular expressions,也叫 REs、 regexs 或 regex patterns),本质上是嵌入 Python 内部并通过 re 模块提供的一种微小的、高度专业化的编程语言。使用这种小语言&#…

合肥网站制作费用建手机网站的软件有哪些

关于关联查询 首先,请准备一些测试数据,使得:存在若干条用户数据,存在若干条角色数据,某个用户存在与角色的关联,最好有些用户有多个关联,又有些用户只有1个关联,还有些用户没有关联…

做网站为什么一定要留住用户公司网站建设周期及费用

微❤关注“电气仔推送”获得资料(专享优惠) 模型简介 根据传统同步发电机的运行特性设计了MMC-VSG功频控制器和励磁控制器, 实现了MMC-VSG逆变器对高压电网电压和频率的支撑。该模型包含MMC变流器模块,环流抑制模块,…

深圳网站制作建设哪家专业广告制作专业

slf4j 记录日志文件SLF4J是一个非常流行的日志记录外观,但是,就像我们使用的所有库一样,我们有可能以错误的方式或至少以一种非最佳方式使用它。 在本教程中,我们将列出常见的日志记录错误以及如何使用FindBugs检测到它们。 我们…

2019广东省工程建设网站通辽网站建设通辽

目录 1、按位与( & ) 2、按位或( | ) 3.按位异或( ^ ) C语言中的位操作符有以下: & | ^//按位与 //按位或 //按位异或 位运算符是计算两者之间的补码,然后得到的是计算后补…

微信扫一扫抽红包在哪里做网站做网站和app哪类商标

解析模板编译template的背后发生了什么一、📑初识模板编译1、vue组件中使用render代替template2、模板编译总结二、✏️感受模板编译的美1、with语法(1)例子展示🌰(2)知识点归纳三、📈编译模板1…

做网站必备软件自己做的网站怎么发到网上

我试图在PHP中发送HTML电子邮件,但它始终显示电子邮件程序中电子邮件的源代码。但它应该将html电子邮件呈现为html,而不是将源代码显示为电子邮件内容。尝试使用sendmail发送/发送html电子邮件,但显示电子邮件的源代码我把我的邮件是这样的&a…

外卖网站建设价钱房产网二手房

文章目录 1.二叉树层序遍历 2.完全二叉树的判断 文章内容 1.二叉树层序遍历 二叉树的层序遍历需要一个队列来帮助实现。 我们在队列中存储的是节点的地址,所以我们要对队列结构体的数据域重定义, 以上代码 从逻辑上来讲就是1入队,1出队&am…

兰州网站建设模板云南网官网

一、背景 qemu单步调试arm64 linux kernel-CSDN博客介绍了如何单步调试kernel, 但是我们经常写一些测试driver, driver的部分如何调试? 二、环境准备 调试driver 就需要准备一个简单的driver, 这里用最简单的hello world来演示如何调试&am…

如何知道一个网站是谁做的wordpress 搭网站

什么是metadata表 Metadata表即Hudi元数据表,是一种特殊的Hudi表,对用户隐藏。该表用于存放普通Hudi表的元数据信息。Metadata表包含在普通Hudi表内部,与Hudi表是一一对应关系。 元数据表的作用 ApacheHudi元数据表可以显著提高查询的读/写性能。元数据表的主要目的是消…

东莞万江网站制作台州网站搜索优化

优先级类型 React内部对于优先级的管理,贯穿运作流程的4个阶段(从输入到输出),根据其功能的不同,可以分为3种类型: 1 )fiber优先级(LanePriority) 位于 react-reconciler包,也就是L…

免费做图片的网站有哪些网站建设风格

原文在简书首发:http://www.jianshu.com/p/badf412db4e7lua-cmsgpack是一个开源的MessagePack实现方式、纯C的库,没有任何其它依赖,编译后可以直接被lua调用,目前主要支持Lua5.1/5.2/5.3 版本。1、什么是MessagePack?-…

高端网站定制站广西网站建设渠道

目录 一、前言 二、代码 一、前言 有些时候我们需要开启或暂停一些服务,比如说开启Apach或暂停MySQL服务等,最近工作中也开发了这方面的功能,记录下来怎样使用PHP语言来开启或暂停Apache、MySQL服务的运行状态。 这种方法也适用其他服务。…

淘客网站备案wordpress能开发商城网站吗

1. 元件基本介绍 2. 基础元件的使用 3. 表单型元件的使用 4. 菜单与表格元件的使用 使用:如果想使用某个元件,我们只需要将它从元件库中拖入画布摆放即可。 - 对齐:默认情况下,两个矩形元件并排摆放,中间的边框为两…

ps制作网站背景邹城网站定制

一个三电源切换电路 电路描述 1、Q1、Q2为NMOS,Q3、Q4和Q5为PMOS管,D1为二极管。 2、BAT1和BAT2为电池,BAT2的容量比BAT1大,VIN_5V为外部电源,VOUT为输出,给系统供电。 3、VOUT会从优先级高的电源取电&a…

重庆专业企业建设网站网络营销方案范文3篇

原文链接&#xff1a;https://blazor-university.com/components/capturing-unexpected-parameters/捕获意外参数源代码[1]之前我们已经看到了如何使用特定名称声明参数和级联参数。例如&#xff0c;一个将 <img> 元素包装在一些自定义 HTML 中的自定义组件。<div cla…