npm 包 expect-browser-graphql 使用教程

阅读时长 6 分钟读完

简介

在前端开发中,GraphQL 已经逐渐成为了一种流行的 API 开发工具。在使用 GraphQL 进行前端开发时,我们需要一个用于进行测试的工具,来测试我们开发的 GraphQL 服务是否符合要求。这个时候,npm 包 expect-browser-graphql 就派上了用场。这个小而强大的工具可以帮助我们进行 GraphQL 测试,并且提供了很多辅助功能,比如可读性强的测试报告。

本篇文章将会详细介绍如何使用 expect-browser-graphql 进行 GraphQL 测试,并且会提供一些示例代码以供参考。

安装

要使用 expect-browser-graphql 进行 GraphQL 测试,我们需要先安装它。可以通过以下命令进行安装:

安装完成后,我们就可以直接在代码中使用它了。

使用

expect-browser-graphql 可以使用在 Node.js 中,也可以使用在浏览器端。这里我们介绍在 Node.js 中使用的方法。

首先,我们需要引入 expect-browser-graphql 的模块:

然后,我们需要编写一个测试用例。下面是一个示例代码:

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

在这段代码中,我们使用了 Apollo Server 和 Apollo Server Testing 来进行 GraphQL 测试。我们先定义了一些 GraphQL 类型和解析器,然后将它们传递给 ApolloServer。通过使用 createTestClient,我们可以从我们的 ApolloServer 中创建出一个测试客户端。最后,我们编写了一个测试用例,使用 expect 来断言发送的请求是否符合预期。

接下来,我们可以在命令行中输入以下命令来运行测试代码:

如果测试顺利通过,那么我们就可以在命令行中看到测试结果。

可辅助的测试功能

除了简单的 GraphQL 测试之外,expect-browser-graphql 还提供了很多辅助功能。以下是一些常用的功能:

  • 支持验证响应数据类型
  • 支持验证响应数据的属性个数
  • 支持深度比较两个对象是否相等
  • 支持在测试报告中输出详细的错误信息

我们来看一个示例代码,来展示如何使用 expect-browser-graphql 实现这些功能:

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

在这段代码中,我们还使用了 Chai 和 expect-browser-graphql 进行了一些验证。我们定义了一个 GraphQL 类型 Account,然后编写了一个查询 Account 的解析器,如果输入的 id 不为 123,我们将返回 null。

我们通过创建测试客户端来进行测试,在测试用例中,我们断言我们的 GraphQL 查询中的账号 id 和 balance 是否等于我们期望的值。我们还会使用 expect-browser-graphql 的一些辅助功能:

  • 我们使用 to.deep.equal 来深度比较两个对象是否相等。
  • 我们使用 to.be.an('object').that.has.all.keys 来断言 response 是否返回了 data 和 errors 两个键。
  • 我们使用 containLiteErrors 来判断存在 LiteError 类型的错误,并提供了详细的错误信息。

由于 expect-browser-graphql 提供了这些强大的辅助功能,我们可以更方便地进行 GraphQL 测试,并且在错误时发现问题的根源。

结语

本文详细介绍了 npm 包 expect-browser-graphql 的使用方式,并提供了一些示例代码。使用 expect-browser-graphql 可以帮助我们更方便地进行 GraphQL 测试,并且提供了一些强大的辅助功能,方便我们在调试时快速定位问题。

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

纠错
反馈