如何用 Jest 和 SuperTest 来测试你的 Express
译者: luojiyin
测试是软件开发的重要组成部分应用程序包,越早进行越好。
在本文
原文: How to Test Your Express.js and Mongoose Apps with Jest and SuperTest,作者:Rakesh Potnuru 译者: luojiyin 测试是软件开发的重要组成部分应用程序包,越早进行越好。 在本文中,我将向你展示如何使用 Jest 和 Supertest 为你的 NodeJs/ExpressJS 和 MongoDB/Mongoose 应用程序编写测试。 开始 首先让我们做一个演示 Express.js 应用程序。 假设我们正在为电子商务应用程序构建一个后端 REST API。 这个应用程序: Express.js 应用设置步骤一:Project 设置 首先,创建一个文件夹,用npm启动一个空白应用程序。
填写它所要求的所有细节。 然后,通过下面的命令,安装 express, mongoose, axios 和 dotenv:
下面是我在 GitHub 上的package.json的一个链接。 步骤二:创建模板 让我们创建所有的文件夹和文件,然后用一些模板代码填充它们。 你的文件夹层次结构应该是这样的:
通过复制和粘贴来使用这些文件的代码。你要尽可能地分析代码和流程。 步骤三:数据库设置 我建议为一个项目使用两个数据库——一个用于测试,另一个用于开发。但对于学习来说,只用一个数据库就足够了。 首先,创建一个MongoDB账户或登录。 然后创建一个新的项目。给它起个名字,然后按 Next 按钮。 为项目命名 然后点击 Create Project。 我们必须在下面的窗口中通过选择一个云供应商、一个位置和规格来创建一个数据库。因此,按 Build a Database 就可以开始了。 创建一个数据库 选择 Shared,因为它足以满足学习目的。然后点击 Create。 选择部署选项 接下来,选择 aws 作为你的云供应商,并选择离你最近的地区。在你选择之后,点击 Create Cluster。 该集群的形成将需要一些时间。在此同时,创建一个用户来访问你的数据库。 创建 Superuser 用户 选择 “My Local Environment”,因为我们正在开发我们的应用程序。然后你可以添加一个 IP 地址。最后,点击Close。 添加 IP 地址 数据库建立后,你会收到一个 URI 字符串,我们将用它来连接数据库。该字符串显示如下:
把这个字符串放在.env文件中。
现在我们准备开始测试我们的应用程序。 如何用 Jest 和 SuperTest 编写测试步骤一:安装 npm 包 你需要三个 npm 包来开始编写测试:jest、supertest 和cross-env。你可以像这样安装它们。
Step 2: 添加测试命令 打开你的package.json文件,将测试命令添加到脚本中。
在这个案例中,我们使用cross-env来设置环境变量,jest来执行测试套件,testTimeout被设置为5000,因为某些请求可能需要一段时间才能完成。 步骤三:开始编写测试代码 首先,在应用程序的根目录下创建一个名为tests的文件夹,然后在那里创建一个名为product.test.js的文件。当你执行 npm run test 时,Jest 会在项目的根目录下搜索 tests 文件夹。因此,你必须将你的测试文件放在tests文件夹中。 接下来,在测试文件中导入supertest和mongoose包。
导入dotenv以加载环境变量,并导入app.js,因为那是我们的应用程序启动的地方。
你需要在每次测试前连接数据库和测试后断开数据库(因为测试完成后我们不需要数据库)。
现在你可以写你的第一个单元测试。
在上面的代码中, 你可以以同样的方式为所有的端点编写测试。
然后运行npm run test来运行测试套件(套件-测试文件)。 测试结果 就是这些了!你现在知道如何用 Jest 和 SuperTest 来测试你的 Express/Mongoose 应用程序了。 现在去为你的应用程序创建新的测试吧!:) 如果你有任何问题,请随时在 Twitter 上给我留言。 (编辑:湘西站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |