与Jest和酶反应UnitTest

时间:2020-05-12 07:00:57

标签: reactjs react-native testing jestjs enzyme

令我惊讶的是,许多博客都在同时使用Jest和Enzyme编写针对React Applications的单元测试。 不能,我们仅通过玩笑或仅通过酶来编写针对React应用程序的单元测试?

如果是的话,要获得一种成分,我们在酶中使用了shallow(),但在Jest中使用了什么?

1 个答案:

答案 0 :(得分:1)

我认为您不完全了解jestenzyme的概念。

开玩笑

TL; DR: Jest只是类固醇的JavaScript测试者(不仅仅是react)。

jest的主要功能是执行JavaScript测试。它为您提供了组织测试的工具,例如使用describeittest块。 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 postenzymereact-testing-libraryrecommended by react一样。