开玩笑地进行快照测试相当容易,但是我对此并不满意,因为感觉好像我实际上没有进行任何测试。在单元测试中,我可以轻松地对我的组件进行测试,并期望它们的实际行为,还可以测试它们应呈现的内容。但是我能看到的有关快照测试的所有内容是,当您更改某些内容并显示出它们之间的差异时,它就会产生收益!我可以使用git diff app.js!
git diff app.js
您可以将快照测试视为具有自动生成的组件假设的单元测试。
优点是您可以轻松地测试复杂的结构而无需编写大量代码,可以在某些更改时收到良好的警告,并且可以轻松地更新此测试。
缺点是,仅阅读测试并不能始终清楚所测试的内容和预期的行为,因此可能会发生以下情况:创建的快照非常复杂,以至于您忽略了错误的假设,这些假设最终以预期的结果出现,并且更新快照非常容易,错误的内容可能会潜入。
因此,在使用快照测试时,使它们更细化非常重要,因此不要总是测试整个组件,而要进行一些较小的测试来测试它的各个部分,并具有良好的代码查看文化,以便发现快照中的错误。