在 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