Jest Snapshot测试与单元测试?

big*_*nJS 13 unit-testing reactjs jestjs

在开玩笑中实现快照测试相当容易,但这是我不太满意的事情,因为感觉我实际上并没有测试任何东西.在单元测试中,我可以轻松地将我的组件置于测试之下并对其实际行为提出期望,并测试它们应该呈现的内容.但是我所能看到的有关快照测试的一点是,当你改变某些东西并向你显示差异时它会产生!我可以用它来做git diff app.js!

And*_*rle 21

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

优点是您可以轻松地测试复杂的结构,而无需编写太多代码,在发生更改时可以获得良好的警告,并且可以轻松更新此测试.

缺点是,从阅读测试开始,并不总是清楚测试的是什么以及预期的行为是什么,可能会发生创建的快照如此复杂以至于您忽略了错误的假设,然后最终会达到预期的结果并且很容易更新快照,错误的东西可以偷偷进入.

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


Nes*_*ric 9

您应该编写快照和单元测试. 快照测试将在渲染时检查更改,例如className,内联样式,某些条件呈现或循环不像以前那样工作.您仍然应该为使用简单渲染无法检查的任何功能编写单元测试(如果单击时调用onClick,依此类推).


Jam*_*yer 5

感谢这个线程上的每个人。我对React还是很陌生,但是刚开始考虑对其进行单元测试,并且想知道同样的事情。就像,如果我有一个地址组件,其中唯一真正的逻辑就是是否以嵌入式或邮递方式呈现地址。我决定在这里进行快照测试。但是,当涉及到验证交互性和状态变化时,我想这就是酶的来源,以及更标准的非UI测试。