使用 Jest 测试 GraphQL 应用的技巧

阅读时长 7 分钟读完

在前端开发中,测试是不可或缺的一部分。而在使用 GraphQL 开发应用时,我们需要针对 GraphQL 查询、变异和订阅等功能进行测试。本文将介绍如何使用 Jest 测试 GraphQL 应用,并提供一些技巧和指导意义。

安装 Jest

在开始测试之前,我们需要先安装 Jest。可以使用 npm 或 yarn 进行安装:

或者

测试 GraphQL 查询

GraphQL 查询是我们最常用的功能之一。在进行测试时,我们需要编写测试用例来确保查询结果正确。以下是一个例子:

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

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

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

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

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

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

在上面的例子中,我们定义了一个名为 hello 的查询,其返回值为一个字符串 Hello world!。我们使用 graphql 函数执行查询,并断言返回结果的 data 字段的值为 Hello world!

测试 GraphQL 变异

GraphQL 变异用于修改数据。在测试变异时,我们需要编写测试用例来确保数据被正确修改。以下是一个例子:

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

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

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

--- ----- - --

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

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

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

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

在上面的例子中,我们定义了一个名为 increment 的变异,其将 count 变量加一,并返回加一后的值。我们使用 graphql 函数执行变异,并断言返回结果的 data 字段的值为 1,同时也断言 count 变量的值为 1

测试 GraphQL 订阅

GraphQL 订阅用于实时更新数据。在测试订阅时,我们需要编写测试用例来确保数据能够正确地实时更新。以下是一个例子:

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

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

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

--- ----- - --

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

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

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

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

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

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

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

在上面的例子中,我们定义了一个名为 countUpdated 的订阅,其每秒钟返回一个对象,包含一个 count 字段,值为 count 变量的当前值。我们使用 createServer 函数创建一个 HTTP 服务器,并使用 executeSubscribe 函数创建一个订阅服务器。我们在测试用例中订阅服务器,并断言每次订阅返回的数据都是正确的。

总结

使用 Jest 测试 GraphQL 应用是一项重要的任务。在测试查询、变异和订阅时,我们需要编写测试用例来确保数据被正确处理,并使用 Jest 提供的断言函数来验证测试结果。本文介绍了测试 GraphQL 应用的一些技巧和指导意义,并提供了示例代码供读者参考。希望读者能够掌握这些技能,提高自己的测试能力。

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

纠错
反馈