令我惊讶的是,许多博客都在同时使用Jest和Enzyme编写针对React Applications的单元测试。 不能,我们仅通过玩笑或仅通过酶来编写针对React应用程序的单元测试?
如果是的话,要获得一种成分,我们在酶中使用了shallow(),但在Jest中使用了什么?
答案 0 :(得分:1)
我认为您不完全了解jest
和enzyme
的概念。
TL; DR: Jest只是类固醇的JavaScript测试者(不仅仅是react
)。
jest
的主要功能是执行JavaScript测试。它为您提供了组织测试的工具,例如使用describe
,it
或test
块。 jest
附带了许多build-in assertions(例如expect(actual).toBe(expected)
),可帮助您确定失败和成功的测试。除了jest
之外,还具有其他功能,例如,它使您可以轻松mock functions甚至是complete modules。
jest
通常不绑定到react
,但与react
结合使用效果很好,因为它由Facebook像{{ 1}}本身。因此,基本上每次都是正确的选择,recommended by react
也是如此。
TL; DR::实用程序的集合,以简化测试/渲染react
组件。
从技术上讲,您不需要react
或任何其他框架来测试Enzyme
组件(只需react
)。 jest
已经公开了react
,但是在没有正确包装和简单地为其API的情况下与他们一起工作确实很麻烦。这正是react-dom/test-utils
正在做的事情。基本上,它在enzyme
上放置了一层抽象,并添加了一堆实用程序,因此您不必担心自己实现它们。
我强烈建议查看react-dom/test-utils
的替代方案react-testing-library
,并阅读其创始人创作的"Testing Implementation Details" blog post。
enzyme
与react-testing-library
,recommended by react
一样。