Hapi.js 实践:构建 Node.js 后端 API 集成测试

阅读时长 5 分钟读完

在构建 Node.js 后端 API 时,集成测试是至关重要的。它可以保证您的 API 在正式环境中能够正确运行和交互。而在 Hapi.js 中,集成测试则是非常容易实现的。本文将介绍如何使用 Hapi.js 构建 Node.js 后端 API 并进行集成测试。

安装 Hapi.js

首先,我们需要安装 Hapi.js。通过 NPM,我们可以很容易地完成安装:

接下来,我们需要创建一个新的 Node.js 项目。在项目的根目录下,创建一个名为 app.js 的文件。这将是我们构建后端 API 的入口文件。

创建路由

接下来,我们需要创建 API 路由。在 Hapi.js 中,路由可以非常灵活地进行配置。例如,我们可以通过以下代码创建一个简单的路由:

-- -------------------- ---- -------
----- ---- - ----------------

----- ------ - -------------
    ----- ------------
    ----- ----
---

--------------
    ------- ------
    ----- ---------
    -------- --------- -- -- -
        ------ ------ --------
    -
---

----- -------- ------- -
    ----- ---------------
    ------------------- ------- --- ---------------------
-

--------
展开代码

在上面的代码中,我们首先创建了一个 Hapi.js 服务器实例,并指定了其主机名和端口号。然后,我们通过 server.route() 方法创建了一个名为 /hello 的简单路由,并指定其请求方法为 GET。最后,我们设置了该路由的处理函数并启动了服务器。

现在,您可以通过访问 http://localhost:3000/hello 来测试上述路由是否可以正常工作。如果一切顺利,您将收到一个包含 "Hello World!" 字符串的响应。

集成测试

现在,我们已经成功创建了一个简单的后端 API。接下来,让我们通过 Hapi.js 自带的实用工具 shot 来编写一些集成测试。

首先,我们需要安装 shot 工具:

接下来,在 app.js 文件中,我们需要将路由暴露出来以便测试。修改 app.js 文件如下:

-- -------------------- ---- -------
----- ---- - ----------------

----- ------ - -------------
    ----- ------------
    ----- ----
---

--------------
    ------- ------
    ----- ---------
    -------- --------- -- -- -
        ------ ------ --------
    -
---

----- -------- ------- -
    ----- ---------------
    ------------------- ------- --- ---------------------
-

-- -- ------ ---------
-------------- - -
    ------ ------
    ------- ------
--
展开代码

在上面的代码中,我们向 app.js 文件添加了一行代码,将 server 实例导出以便测试调用。现在,我们可以在测试文件中加载 app.js 并开始测试。

在项目根目录下,创建一个名为 test.js 的文件,并输入以下代码:

-- -------------------- ---- -------
----- --- - ---------------
----- --- - ----------- - -------------
----- - ------ - - ----------------
----- --- - -----------------

------------- ------ ------- ------ --------- ----- -- -- -
    ----- ------- - -
        ------- ------
        ---- --------
    --

    ----- -------- - ----- ---------------------------
    ---------------------------------------- ---------
---
展开代码

在上述测试中,我们首先导入 Labchai 库,它们分别用于编写测试用例和断言。接着,我们导入 app.js 文件,以便从测试文件中调用其 server 实例。然后,我们定义了一个名为 GET /hello returns "Hello World!" 的测试用例。在测试用例中,我们使用 server.inject() 方法发送一个名为 /hello 的 GET 请求,并验证其响应是否为 "Hello World!"。

现在,我们可以通过运行以下命令来运行我们的测试:

如果一切顺利,您将看到一个输出表示测试用例已通过。至此,我们已经成功地创建了一个基本的后端 API,并编写了一些简单的集成测试。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67bd0aada231b2b7edf08222

纠错
反馈

纠错反馈