【问题标题】:Why does \\ not seem to work in Jest snapshots?为什么 \\ 在 Jest 快照中似乎不起作用?
【发布时间】:2017-08-22 17:53:54
【问题描述】:

编辑 2:我现在已经在 React 应用程序中测试了这些文件。 JavaScript 按预期工作,因此唯一的实际问题似乎是 Jest 快照不一致地处理转义字符,包括无效 JS 的方式,这可能会使调试变得混乱。测试仍然可以正常工作,仅查看快照可能会令人困惑。

编辑:我的问题不是关于何时使用单引号或双引号的问题的重复。我想知道为什么在 JSX 或 Jest 快照中转义反斜杠似乎不起作用,而转义引号却可以。

\\ should become \ yet it appears as \\ in the official Jest example 

https://github.com/facebook/jest/blob/master/examples/snapshot/tests/snapshots/link.react.test.js.snap

我正在学习 Jest 并查看他们的示例进行快照测试。在题为它正确转义引号的测试中,引号被正确转义,但是有些部分是两个反斜杠在一起并且它们都在快照中呈现。

这是与 Jest 快照相关的独特事物或错误吗?

这是测试

it('properly escapes quotes', () => {
  const tree = renderer
    .create(
      <Link>
        {"\"Facebook\" \\'is \\ 'awesome'"}
      </Link>
    )
    .toJSON();
  expect(tree).toMatchSnapshot();
});

这是快照输出:

exports[`properly escapes quotes 1`] = `
<a
  className="normal"
  href="#"
  onMouseEnter={[Function]}
  onMouseLeave={[Function]}
>
  "Facebook" \\'is \\ 'awesome'
</a>
`;

为什么双反斜杠不呈现为一个反斜杠?毕竟 JavaScript 不就是这样工作的吗?

我将不胜感激。

【问题讨论】:

    标签: jestjs


    【解决方案1】:

    我现在已经在一个 React 应用程序中测试了这些文件。 JavaScript 按预期工作,因此唯一的实际问题似乎是 Jest 快照不一致地处理转义字符,包括无效 JS 的方式,这可能会使调试变得混乱。

    测试仍然可以正常工作,仅查看快照可能会令人困惑。

    【讨论】:

      【解决方案2】:

      我遇到了这个问题,当我在快照中使用双倍的斜杠时它起作用了。

      例如代替\\,使用\\\\

      也许在读入快照时,它在 Jest 中经历了两个级别的缩减。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-20
        • 2012-05-09
        • 1970-01-01
        • 2019-03-14
        • 2010-10-14
        • 2022-11-13
        相关资源
        最近更新 更多