为什么\\似乎不适用于Jest快照?

时间:2017-08-22 17:53:54

标签: jestjs

编辑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的工作方式吗?

我很感激任何帮助。

1 个答案:

答案 0 :(得分:0)

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

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