使用 Mocha 和 Chai 在 Express 中测试 Node JS 中的 REST API 😎 目录 什么是单元测试?!为什么要使用单元测试?谁使用单元测试?!结论

2025-06-09

使用 Mocha 和 Chai 在 Express 中测试 Node JS 中的 REST API

目录

什么是单元测试?!

为什么要使用单元测试

谁使用单元测试?!

结论

目录

什么是单元测试?!

是一种软件测试方法,通过该方法,软件开发人员编写和运行源代码的各个单元和通常是自动化的测试,以确保应用程序的某个部分(称为“单元”)符合其设计并按预期运行。


为什么要使用单元测试

测试是人们要么喜欢要么讨厌的事情之一。通常测试是令人讨厌的事情

哈哈

  • 直到你参与一个拥有良好测试的项目,你才会意识到它们有多棒。我将讨论使用chai 和 mocha
    在 JavaScript 中编写测试所需的代码,并向你展示一些测试陷阱。

  • 在文章的最后,我将分析测试的重要性以及您可以遵循的一些最佳实践,以使您的测试更加出色。


谁使用单元测试?!

为了开始这次旅行,我已经创建了简单的 REST API(获取、发布等)

Git API

  • 这些都是非常简单的服务器端 Nodejs,带有 Express API GitHub 存储库链接,
    在我们的例子中,我们有一个路由获取所有任务,这些任务通过一小组任务进行响应。

  • 正如我们在本文开头提到的,我们将讨论测试以及如何在 JavaScript 上进行测试,我认为最简单的方法是使用两个库(chai 和 mocha)

Chai是 NodeJS 和浏览器的断言库,有三种风格 [ should, Expect, Assert]

Mocha是一个 JavaScript 测试框架,each 是一个非常棒且构建良好的 JavaScript 测试库


让我们开始吧

1.为了开始这一切,我们需要做的就是安装两个库

run npm i mocha chai --save--dev

替代文本

2.现在下载已经完成,我们来到这里,这里有测试脚本,我们可以通过输入来更改它"test": "mocha"

替代文本

3.因此,要开始创建第一个测试,只需创建名为 test 的文件夹并添加一个新文件 task.js,并赋予它与要测试的文件完全相同的名称,在我们的例子中,我们将测试

替代文本

4.现在在这个文件中,我们需要导入路由文件(task.js),包括所有 API,为了编写测试,我们需要导入 chai,然后添加断言

'替代文本

5.现在我们可以调用我们的 RESTful API,为了使用mocha描述我们的测试,让我们调用它tasks API,然后我们定义一个箭头函数,所以第一个任务是描述 Get API,让我们调用它,Get-All-Tasks然后使用来描述我们的 API 做什么it should Get all the tasks

6.在这里我们使用chaichai.request(server)测试我们期望使用的 Get API .get("/api/tasks"),它将接收错误和响应,因此我们期望成功的结果,因此响应应该具有状态 200,并且主体应该是一个包含 3 个任务的数组.end((err, response)

替代文本

7.最后调用Done(),并使用运行npm test,测试成功运行

替代文本

庆祝

如果您需要请求错误的路线来显示 API 响应,我们会进行一些小的更改

替代文本

测试 GET(按 ID)路由相同的步骤,但我们将添加任务 ID,并在响应中检查返回的属性

替代文本


结论

测试是开发人员最重要的技能之一,很多人不教也不关注这一点,但如果你知道测试,它会让你从其他不了解测试的开发人员中脱颖而出,并在你申请工作时为你提供额外的优势

鏂囩珷鏉ユ簮锛�https://dev.to/mhmdlotfy96/testing-a-rest-api-in-node-js-with-express-using-mocha-and-chai-1258
PREV
使用 Aircrack-ng 破解 Wifi (WPA/WPA2)
NEXT
JavaScript 中的 Array.sort() - 我在一次面试中被问到这个问题