如何使用 Chai 和 Mocha 测试 GraphQL API

阅读时长 6 分钟读完

GraphQL 已经成为现代 Web 开发中最受欢迎的 API 标准之一。 它通过使用类型强制的查询语言和自定义类型返回数据,将客户端和服务器端解耦。 本文将介绍如何使用 Mocha、Chai 和 GraphQL 来创建自动化测试 GraphQL API 的测试套件。

准备工作

首先,需要开发一个 GraphQL API。 如果你已经有了一个 GraphQL API,那么你可以直接进入下一步,否则你需要一个 GraphQL 服务器和一个搭配的客户端。 这里我们使用 Express 和 GraphQL Yoga 来创建服务器。

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

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

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

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

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

在终端中运行该代码将启动 GraphQL 服务器。 要在客户端中运行查询,需要使用 Apollo Client。 该客户端可在任何支持 JavaScript 的环境中使用。 在本文中,我们将使用 Node.js。

首先,需要安装 apollo-boost 和 graphql 库。

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

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

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

以上代码将在控制台显示 "Hello, world!"。

创建 Mocha 测试运行器

现在,我们来看一下如何使用 Mocha 来测试我们的 API 查询。 如果还没有安装 Mocha,可以通过下面的命令进行安装:

然后,在创建测试文件之前,我们需要创建一个 npm script 来运行 Mocha。编辑 package.json 文件,添加以下代码:

然后,创建一个名为 query.test.js 的 JavaScript 文件。 在该文件中进行导入所需的库和定义测试用例。我们会调用 describe 函数和 it 方法来编写我们的测试用例:

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

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

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

最后,运行 npm run test 命令,即可执行 Mocha 测试用例。

导出测试结果

Mocha 可以将所有测试结果输出为 JSON、XML 或其他类似于 CI 工具要求的格式。我们可以使用 Mochawesome,该工具会提供一个报告,以便更方便地查看和测试结果的分析。

首先,需要安装 mochawesome 和 mochawesome-merge 包。

接着,修改 package.json,添加以下配置:

以上配置文件中的 npm 脚本会自动从 Mocha 输出中生成可读性更好的 HTML 报告。 运行 npm run test 命令将会生成一个存储在 mochawesome-report 文件夹中的 JSON 格式测试报告。 然后,运行 npm run generate-report 命令将生成可读性更好且美观的 HTML 报告。

总结

我们现在已经学会了如何使用 Mocha 和 Chai 测试 GraphQL API!这项技能将会使你的代码更加健壮,并且能够更深入地了解你的应用程序如何运作。请确保为每个函数/方法编写测试,这不仅能使团队更加协调,还能使代码更加可维护。

完整代码可从 GitHub 仓库 下载。

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

纠错
反馈