使用 Chai 和 Mocha 在 Node.js 中测试 GraphQL 请求

阅读时长 6 分钟读完

在现代 Web 应用程序中,GraphQL 成为了一个非常流行的 API 技术。GraphQL 具有高度可组合性和灵活性,使开发人员能够更准确地控制他们的数据交流。然而,与其他技术一样,GraphQL 也需要进行测试以确保其有效性。本文将介绍如何使用 Chai 和 Mocha 在 Node.js 中测试 GraphQL 请求。

什么是 Chai 和 Mocha?

Chai 是一个行为驱动的 JavaScript 测试库,它使测试变得更直观。 Chai 可以结合其他测试框架,如 Mocha,使用,可以用于测试 Node.js 和浏览器中的应用程序。它提供了各种语言机制,包括断言语法、BDD 和 TDD 等,方便我们进行不同粒度的测试。

Mocha 是一个功能强大的 JavaScript 测试框架,它适用于浏览器和 Node.js 应用程序。Mocha 具有多种测试报告输出格式,并具有钩子机制,在测试运行之前和之后运行额外的代码。

单元测试 GraphQL 请求

我们来看一个具体的例子。假设我们已经有一个 GraphQL 服务,并且我们需要测试一个查询,查询所有用户的名字和邮箱地址。我们将测试以下的 GraphQL 查询:

安装依赖项

我们需要安装以下依赖项:

  • chai:行为驱动的 JavaScript 测试库。
  • mocha:功能强大的 JavaScript 测试框架。
  • graphql:用于创建 GraphQL 查询的库。
  • node-fetch:用于从服务器获取响应的库。

您可以使用以下命令来安装这些依赖项:

创建测试文件

我们现在来创建一个名为 users.test.js 的测试文件,并使用以下代码作为测试基础架构:

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

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

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

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

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

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

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

在这个测试基础架构中,我们使用了 describe 函数来定义测试组,然后使用 it 函数来定义具体的测试用例,使代码变得易于阅读。首先,我们使用 buildSchema 函数创建一个包含一个用户类型和一个名为“用户”的查询类型的 GraphQL Schema。然后,我们定义了一个根对象,它有一个名为“用户”的属性,以数据数组形式返回一个有两个用户的对象数组。接着,我们使用 GraphQL 内置的 graphql 函数运行查询,并使用断言语法检查返回的结果是否正确。我们还测试了 GraphQL 服务是否返回了 HTTP 状态码 200

运行测试

我们可以使用以下命令来运行此测试:

如果所有测试都通过,我们将看到以下输出:

结论

使用 Chai 和 Mocha 在 Node.js 中测试 GraphQL 查询是一种很好的方法,它可以帮助我们提高应用程序的质量和性能。我们可以使用 Mocha 中的钩子函数,在测试运行之前和之后运行额外的代码。并且,我们可以添加更多的测试用例和测试方法,这将有助于我们为我们的 GraphQL 应用程序提供更好的测试覆盖率。

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

纠错
反馈