npm 包 ember-cli-pact 使用教程

阅读时长 5 分钟读完

在前端开发中,我们常常需要跟后端的API进行集成,使前端的应用可以与后端的服务交互。一旦API变化频繁或者需要预先约定接口,那么单元测试集成将变得颇为不便。这个时候,你就需要使用mock server工具。ember-cli-pact 便是一个帮助你快量创建mock server的npm包,本文将扼要地介绍该包的使用方法。

ember-cli-pact是什么?

Pact是一个用于前后端集成测试和断言的工具,其中 ember-cli-pact可以帮助前端开发快速创建Pact Mock Server并与其协作。

安装和配置

首先,需要使用ember-cli安装ember-cli-pact :

完成后,你将看到下列的文件被自动添加到你的应用中:

  • pact-mock-service.js 用来启动mock server
  • /pacts 用来存储pact测试协议的JSON文件

我们还需要安装@pact-foundation/pact-node,它是Pact的node版本,用来与Pact Mock Service进行协作:

接着,我们需要创建一个Pact Helper来处理创建pact协议的相关操作。

此时,在tests/helpers/pact.js中会产生如下代码:

其中参数opts是Pact的配置对象。关于设置多个provider、设置异步timeout和使用参数的可解析组参照Pact Help文档。

创建 Pact Mock Service

我们将在测试中编写Pact测试,并在本地启动Pact Mock Service,然后在测试中使用它来验证测试结果。以下演示了创建一个简单测试的步骤。

首先,在test目录下创建一个新的测试"Pact Consumer Test" :

在 "pact-consumer-test"中编写创建 pact 和数据驱动测试的代码

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

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

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

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

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

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

在上面代码中,我们首先调用了 setupPactForProvider方法,该方法用于初始化Pact Mock Server。之后,我们定义了需要Mock的数据,最后我们再次调用mockService.addInteractions方法将交互数据Mock到Pact Mock Server。最后,我们将在我们的页面上使用模拟的数据。

运行测试和 Pact Mock Server

有两种启动Pact Mock Server的方法:从命令线启动和在测试中调用。以下演示了在测试中启动Pact Mock Server的方法。

在测试运行前,我们需要为Pact Mock Server指定一个端口,避免与其他测试重叠。我们需要正式占用Mock Server端口,因此应用启动语句如下:

运行测试,Pact Mock Server就会自动启动。当测试结束后,Mock Server也就关闭了,下一次运行测试时服务端口就会自动释放。

结论

如上所述,ember-cli-pact 简化界面集成测试的流程。Pact Mock Server就像一个虚拟的后端服务,其与测试并行执行。在测试中,我们可以与它进行交互,以验证我们的前端是否可以正确与后端进行交互。如果你的程序与后端API密切流程,那么 ember-cli-pact 无疑是你不可或缺的工具之一。

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

纠错
反馈