解决使用 Enzyme 测试 React 组件时遇到的无法获取 className 的问题

阅读时长 2 分钟读完

在 React 开发中,我们经常需要使用 Enzyme 来进行组件的测试。但是,有时我们会发现无法获取到组件的 className,这是因为 Enzyme 中的 find 方法默认只能获取到组件的 props 和 children,而不能获取到 className。那么该如何解决这个问题呢?

解决方案

我们可以使用 shallow 方法来进行组件的浅渲染,然后使用 find 方法来获取到包含 className 的 DOM 元素,最后使用 hasClass 方法来判断是否存在该 className。

下面是一个示例代码:

-- -------------------- ---- -------
------ ----- ---- --------
------ ------- - ------- - ---- ---------
------ ------- ---- --------------------------

------------------ -------- --- --------- ---

----------------------- -- -- -
  ---------- ---- ----- ------------ -- -- -
    ----- ------- - -------------------- ----
    ------------------------------------------------------------------
  ---
---

在上面的示例代码中,我们使用 shallow 方法来进行组件的浅渲染,然后使用 find 方法获取到包含 className 的 DOM 元素,最后使用 hasClass 方法来判断是否存在该 className。

总结

通过上面的解决方案,我们可以很方便地解决 Enzyme 测试 React 组件时遇到的无法获取 className 的问题。在实际开发中,我们应该根据具体的情况来选择不同的测试方法,以保证测试的准确性和可靠性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65f3ef722b3ccec22fc5b0c0

纠错
反馈