Jest 实现快照测试相当容易,但我对此不太满意,因为感觉我实际上并没有测试任何东西。
在单元测试中,我可以轻松地获取我想要测试的组件并编写对其实际行为的期望,并测试它们应该呈现的内容。但关于快照测试,我所能看到的只是当您更改某些内容时它会产生结果并显示差异...类似于 git diff
所做的。
那么什么时候我应该使用快照测试而不是单元测试?
最佳答案
您可以将快照测试视为带有自动生成的有关组件的假设的单元测试。
优点是您可以轻松测试复杂的结构,而无需编写太多代码,当某些内容发生更改时您会收到良好的警告,并且您可以轻松更新此测试。
缺点是,仅通过阅读测试并不总是清楚测试的内容以及预期的行为是什么,创建的快照可能非常复杂,以至于您忽略了错误的假设,而最终却得到了预期的结果而且更新快照非常容易,错误的内容可能会潜入。
因此,在使用快照测试时,让它们更加精细非常重要,因此不要总是测试整个组件,而是进行一些较小的测试来测试其中的某些部分,并拥有良好的代码审查文化,以发现快照中的错误。
关于reactjs - 我什么时候应该使用快照测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43771602/