npm 包 jest-canvas-snapshot-serializer 使用教程

阅读时长 5 分钟读完

jest-canvas-snapshot-serializer 是一个用于对比 Canvas 元素快照的 Jest 序列化器。它将 Canvas 元素转换成 PNG 格式,并与指定快照进行对比,从而方便我们在测试过程中验证 Canvas 元素的正确性。

在本文中,我们将详细介绍 npm 包 jest-canvas-snapshot-serializer 的使用教程,包括基础安装、配置使用以及常见问题处理等方面的内容。

基础安装

首先,我们需要安装 jest-canvas-snapshot-serializer 实现对 Canvas 元素进行快照对比的功能。我们可以通过 npm 包管理器来进行安装操作:

安装成功后,我们需要在 jest 配置文件中进行 serializer 配置。具体操作如下:

基本使用

在基础安装和配置完成之后,我们就可以愉快的进行 jest-canvas-snapshot-serializer 的使用啦!下面,我们将演示一个完整的例子,带大家一步步学习如何使用 jest-canvas-snapshot-serializer。

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

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

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

在上述代码中,我们使用到了 jest-image-snapshot 的 toMatchImageSnapshot 方法,它是一个基于 pixel 的图像对比库。在这个例子中,我们进行了一个简单的操作,画了一个矩形,并对比其与指定快照的匹配情况。

特殊配置

在某些情况下,由于处理图片的 API 限制,快照和输出的 PNG 图片可能存在差异,这时就需要对 jest-canvas-snapshot-serializer 进行额外的配置工作。

下面,我们将介绍两种常见的特殊配置方式:

JPEG

如果你的系统中没有安装 C++ 编译器,则要在 Jest 配置中将输出格式指定为非 PNG 格式。在这里我们将其指定为 JPEG 格式:

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

精度设置

默认情况下,快照比较像素级别精确,如果您只需要进行宽松比较,可以调整参数:

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

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

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

在这里,我们通过“failureThreshold”和“failureThresholdType”参数的设置使结果更接近实际使用情况,提高测试的可靠性。

常见问题

在使用 jest-canvas-snapshot-serializer 进行测试的过程中,有时可能会遇到一些问题,例如:

无法找到 Canvas 元素

在使用过程中,可以先在命令行工具中运行单独的测试用例来检查 Canvas 元素是否存在。如果检查不到,在代码中可能存在问题。

快照对比失败

可以通过设置特殊配置的方式,调整精度以及输出格式,降低快照对比失败的概率。

图像失真或者异常

可能是由于不同系统或者设备的不同导致的,可以尝试在其他设备以及系统下进行测试。

总结

在本文中,我们详细介绍了 npm 包 jest-canvas-snapshot-serializer 的基本安装、配置以及常见问题的处理方法,希望能够帮助大家更好的完成前端测试工作。

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

纠错
反馈