expect(x).toMatchSnapshot() - >使用默认的serialiser或JSON.stringify()?

时间:2017-03-22 02:21:38

标签: javascript json snapshot jestjs

Jest具有snapshot功能,其文档示例演示了如何将其与React组件一起使用。 (renderer.create(...).toJSON())。

使用此功能测试常规Javascript对象时,我有两种可能的方法来实现此目的:

  • expect(x).toMatchSnapshot()
    • 这使用默认序列化程序
  • expect(JSON.stringify(x, undefined, 2)).toMatchSnapshot()
    • 这使用JSON.stringify作为序列化工具

当然,保存的.snap文件的内容在每种情况下都不同;但除此之外他们会以同样的方式有效地执行。

在这种情况下哪个被认为是最佳做法?

还有另一种推荐方式吗?

1 个答案:

答案 0 :(得分:1)

没有最好的做法。在您的情况下做最适合您的套房。如果您发现您的快照包含JSON.stringify更有价值的信息,请选择它。

对于复杂值(如Vue组件或库对象),您也可以编写自己的序列化程序:http://facebook.github.io/jest/docs/configuration.html#snapshotserializers-array-string