为什么 Jest 快照会因为双引号而包含转义字符?

Tho*_*art 9 javascript jestjs

Jest 中的某些东西对我来说似乎很奇怪。这条线是否正常:

expect(`"Hello"`).toMatchSnapshot();
Run Code Online (Sandbox Code Playgroud)

给我以下快照:

exports[`Item renders and matches the snapshot 1`] = `"\\"Hello\\""`;
Run Code Online (Sandbox Code Playgroud)

我希望快照是 just"Hello"而不是"\\"Hello\\""。这是一个问题还是背后有什么我不明白的地方?

oie*_*elo 3

快照基于 JSON.stringify,如果您运行浏览器开发工具:

JSON.stringify("hello"); // outputs: '"hello"'
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,我们有额外的单引号来包裹双引号

jest 使用相同的方法,但由于它对快照结果使用双引号括起来,因此它需要转义您的值才能用双引号括起来,因此"\\"Hello\\"".