javascript - Jest Snapshots 在 SVG Prop 上失败

标签 javascript reactjs svg jestjs font-awesome

包含 Fontawesome-React 图标组件时,Jest 快照测试失败。
我没有通过 titlearia-labelledby到 SVG 组件,即使我确实将这些 Prop 传递给它,快照也会继续散列这些 Prop 。测试无法通过,因为每次测试运行时都会在这两个 props 中生成一个新的哈希。
"@fortawesome/react-fontawesome": "^0.1.4","jest": "^23.6.0",

        <svg
    -     aria-labelledby="svg-inline--fa-title-y4Cv9dkIlhtu"
    +     aria-labelledby="svg-inline--fa-title-gIn5ZJBsxixz"
          className="svg-inline--fa fa-user-circle fa-w-16 fa-1x "
          color="whitesmoke"
          data-css-knsav2=""
          data-icon="user-circle"
          data-prefix="fas"
    @@ -23,11 +23,11 @@
          }
          viewBox="0 0 496 512"
          xmlns="http://www.w3.org/2000/svg"
        >
          <title
    -       id="svg-inline--fa-title-y4Cv9dkIlhtu"
    +       id="svg-inline--fa-title-gIn5ZJBsxixz"
            style={Object {}}
          >
            User Profile
          </title>

最佳答案

我们的解决方案是为我们正在导入的 svg 组件创建一个 jest.mock。
最终,我们不想在自己的测试中测试外国库,
所以这对我们来说是公认的解决方案。
例如:

jest.mock('@materialui/icons', () => ({ 
    SomeIcon: () => <div>SomeIconHere</div>,
    // etc...
});
这有助于保持我们的快照测试稳定。

关于javascript - Jest Snapshots 在 SVG Prop 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58308961/

相关文章:

reactjs - React .- JSX 中的 reduce() 未渲染

javascript - 使用 Javascript 注入(inject) SVG 的后备

javascript - 从 javascript 编辑 SVG 样式

javascript - IE 的 AWS 签名问题

javascript - V8 c++ - 无法反序列化 V8 快照 blob

reactjs - 使用 mobx 与 React 功能组件且不使用装饰器

javascript - 使用什么方法在我的网站上显示背景?

javascript - Angular2 表在过滤后无法正确构建

javascript - DataTables API - ColumnDefs 和渲染

javascript - 连接到组件时修改 redux 中的数据