npm 包 hubot-mock-adapter-v3 使用教程

阅读时长 7 分钟读完

Node.js 中的包管理器 npm 提供了许多有用的包,其中包括可以方便地测试 Hubot 脚本的 hubot-mock-adapter-v3 包。本文将为大家介绍该包的使用方法。

安装 hubot-mock-adapter-v3

安装 hubot-mock-adapter-v3 只需要执行以下命令:

使用 hubot-mock-adapter-v3

在测试 Hubot 脚本时,使用 hubot-mock-adapter-v3 可以非常方便地模拟用户输入和 Hubot 的响应。以下是一个简单的示例,该示例将 Hubot 的 ping 命令做了一些调整。

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

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

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

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

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

在上述示例中,我们使用 hubot-test-helper 创建了一个名为 ping 的 Hubot 脚本,并使用 hubot-mock-adapter-v3 模拟了一个用户,在聊天室里向 Hubot 发送了一个 ping 命令。在测试结束后,我们可以检查 Hubot 发送回的消息是否为预期的 pong

深度学习 hubot-mock-adapter-v3

除了上述示例中介绍的基本用法之外, hubot-mock-adapter-v3 还提供了许多其他有用的功能,例如模拟群组中的多个用户,模拟 robot.brain 中的数据以及模拟监听器等。

在模拟用户时,我们可以指定一个或多个用户名称。例如:

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

而在模拟 robot.brain 时,我们可以手动设置和读取数据:

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

还可以模拟定时器:

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

如上述代码所示,我们通过获取 adapter 的时钟并调用 setTimeout 方法来模拟 ping 命令的执行。

附录:完整示例代码

以下是本文提到的示例代码的完整代码和测试报告。

scripts/ping.js:

test/ping-test.js:

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

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

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

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

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

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

测试报告:

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

纠错
反馈