reactjs - 我什么时候应该使用快照测试?

标签 reactjs unit-testing jestjs snapshot-testing

Jest 实现快照测试相当容易,但我对此不太满意,因为感觉我实际上并没有测试任何东西。

在单元测试中,我可以轻松地获取我想要测试的组件并编写对其实际行为的期望,并测试它们应该呈现的内容。但关于快照测试,我所能看到的只是当您更改某些内容时它会产生结果并显示差异...类似于 git diff 所做的。

那么什么时候我应该使用快照测试而不是单元测试?

最佳答案

您可以将快照测试视为带有自动生成的有关组件的假设的单元测试。

优点是您可以轻松测试复杂的结构,而无需编写太多代码,当某些内容发生更改时您会收到良好的警告,并且您可以轻松更新此测试。

缺点是,仅通过阅读测试并不总是清楚测试的内容以及预期的行为是什么,创建的快照可能非常复杂,以至于您忽略了错误的假设,而最终却得到了预期的结果而且更新快照非常容易,错误的内容可能会潜入。

因此,在使用快照测试时,让它们更加精细非常重要,因此不要总是测试整个组件,而是进行一些较小的测试来测试其中的某些部分,并拥有良好的代码审查文化,以发现快照中的错误。

关于reactjs - 我什么时候应该使用快照测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43771602/

相关文章:

unit-testing - 如果我已经实践了基于示例的测试,为什么还要真正使用基于属性的测试?

typescript - 类型上不存在 Jest typescript 属性模拟

html - 使用react-slick居中幻灯片

javascript - map 内部的三元组不返回结果

reactjs - React.cloneElement 克隆已经克隆的元素以添加新的 Prop

objective-c - XCode 4 中的 "Test After Build"选项不起作用

unit-testing - 如何使用 Jest 和 enzyme 测试正在使用其他微前端组件的一个微前端组件

javascript - React - SetState 处理程序方法

reactjs - enzyme :类型错误:适配器不是构造函数

javascript - npm 测试没问题,但它也会引发 Uncaught Error AskBackend ReferenceError : localStorage is not defined