在前端开发中,测试是非常重要的一环。在构建一个应用程序的过程中,我们经常需要确保代码在各种条件下都能正确运行。Jest 是一个流行的 JavaScript 测试框架,广泛应用于前端项目中。Jest 支持多种测试类型并提供易于理解的报告,使开发人员能够快速测试并声明其代码的正确性。
本文将介绍如何在 Express 应用程序中使用 Jest 进行单元测试。我们将指导您完成使用 Jest 进行测试的完整过程,并提供示例代码以帮助您开始测试。
安装 Jest
使用 Jest 进行测试之前,要确保已安装 Node.js 和 npm 包管理器。在安装 Jest 之前,请确保您的项目中已正确配置 package.json 文件和 npm。
您可以使用以下命令在项目中安装 Jest:
npm install --save-dev jest
如果要避免在每次运行 Jest 时输入 “npm test” 命令,则可以在 package.json 文件中设置 Jest 运行器。在 package.json 文件中添加以下代码:
{ "scripts": { "test": "jest" } }
现在您可以使用 “npm test” 命令运行 Jest 脚本。
编写测试代码
首先,我们需要编写一个测试脚本。我们将在 Express 应用程序上编写两个测试用例。第一个测试用例将测试我们的 Express 应用程序是否能够正确监听 HTTP 接口,第二个测试用例将测试我们的应用程序是否能够正确响应 HTTP 请求。
在项目中创建一个名为 “app.test.js” 的文件,添加以下内容:
-- -------------------- ---- ------- ----- ------- - --------------------- ----- --- - ----------------- -------------- --- ---- ------ -- -- - -------- ------ -------- --- --- -------- ------ -- - ------------------------------------- -- - -------------------------------------- ------- --- --- --- -------------- --- ---- ------- -- -- - -------- ------ -------- --- ---- -------- ------ -- - ----------------------------- ----- ------ ------------------ -- - -------------------------------------- ------------------------------- -------- ------- ------ --- ------- --- --- ---
在这个脚本中,我们首先导入了 Supertest 和 app 常量。Supertest 是一个工具类库,用来发送 HTTP 请求并测试响应。然后,我们使用 Jest 全局函数 “describe()” 来定义测试用例的“作用域”。我们有两个作用域,一个用于测试 HTTP GET 请求,另一个用于测试 HTTP POST 请求。在每个作用域中我们使用 Jest 全局函数 “test()” 来定义要执行的每个测试用例。在执行测试用例期间,我们使用 expect() 断言评估响应是否正确。
编写应用程序代码
创建一个 app.js 文件,并添加以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---------- - ----------------------- ----- --- - ---------- -------------------------- ------------ ----- ---- -- - --------------- -------- --- ------------- ----- ---- -- - ----- ---- - -------------- ---------- -------- ------- --------- --- --- -------------- - ----
这个应用程序非常简单。我们使用 Express 构建了一个基本应用程序,定义了两个路由,一个是 HTTP GET 路由(默认监听 80 端口),另一个是 HTTP POST 路由。在 POST 路由中,我们获取请求体中的 name 属性并使用字符串插值构建响应消息。
运行测试
最后,运行以下命令来运行 Jest 测试:
npm test
您应该看到类似以下输出:
PASS ./app.test.js Test the root path ✓ It should response the GET method (9ms) Test the POST route ✓ It should response the POST method (4ms) Test Suites: 1 passed, 1 total Tests: 2 passed, 2 total
如果您看到这些输出,恭喜您!您已成功地使用 Jest 进行了 Express 应用程序的单元测试。
总结
在本文中,我们介绍了如何使用 Jest 测试框架,开发了针对 Express 应用程序的两个基本单元测试用例,并提供了完整的测试代码示例。Jest 提供了您所需的基础设施和底层支持来执行各种测试类型,并通过易于阅读的报告使您的测试过程变得轻松简单。希望这篇文章能够帮助您开始使用 Jest 建立和执行您自己的测试用例。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64e331a6f6b2d6eab3e986f0