GraphQL 查询测试工具:随机数据生成器 mocker-graphql

阅读时长 7 分钟读完

GraphQL 是一种用于 API 的查询语言,它提供了一种更加高效、强大和灵活的方式来获取数据。在前端开发中,我们经常需要测试 GraphQL 查询的正确性和性能。为了方便测试,我们可以使用 mocker-graphql 这个随机数据生成器。

mocker-graphql 是什么?

mocker-graphql 是一个基于 GraphQL 的数据生成工具,它可以自动生成符合 GraphQL Schema 的随机数据。它支持自定义数据类型、字段类型和数据数量,可以帮助我们快速生成测试数据,提高测试效率。

如何使用 mocker-graphql?

安装

我们可以通过 npm 安装 mocker-graphql:

示例

假设我们有以下的 GraphQL 查询:

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

我们可以使用 mocker-graphql 自动生成符合查询的随机数据:

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

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

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

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

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

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

输出结果如下:

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

可以看到,mocker-graphql 自动生成了一个符合查询的随机数据,包括了用户信息和用户的帖子信息。

自定义数据类型和字段类型

mocker-graphql 支持自定义数据类型和字段类型。例如,我们可以自定义一个名为 DateTime 的数据类型,它表示日期时间:

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

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

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

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

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

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

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

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

输出结果如下:

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

可以看到,mocker-graphql 自动生成了一个符合查询的随机数据,其中帖子的创建时间都是当前的 ISO 日期时间。

自定义数据数量

mocker-graphql 还支持自定义数据数量。例如,我们可以生成多条用户数据:

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

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

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

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

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

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

输出结果如下:

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

可以看到,mocker-graphql 自动生成了 10 条用户数据。

总结

mocker-graphql 是一个非常方便的 GraphQL 数据生成工具,它可以帮助我们快速生成符合 GraphQL Schema 的随机数据,提高测试效率。在使用 mocker-graphql 时,我们可以自定义数据类型、字段类型和数据数量,使生成的数据更加符合我们的测试需求。

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

纠错
反馈