我有一个 React 组件,它生成一个按钮,其内容包含一个 <span>
元素,如下所示:
function Click(props) {
return (
<button disable={props.disable}>
<span>Click me</span>
</button>
);
}
我想使用 react-testing-library
和 mocha
+ chai
来测试这个组件的逻辑。
我现在卡住的问题是 getByText("Click me")
选择器返回 <span>
DOM 节点,但是对于测试,我需要检查 disable
属性 <button>
节点。处理此类测试用例的最佳实践是什么?我看到了几个解决方案,但它们听起来都有些不对劲:
- 使用
data-test-id
用于<button>
元素 - 选择
<Click />
组件的祖先之一,然后选择按钮within(...)
这个范围 - 用
fireEvent
点击选中的元素并检查是否没有发生任何事情
你能推荐一个更好的方法吗?
原文由 Nikita Sivukhin 发布,翻译遵循 CC BY-SA 4.0 许可协议
断言按钮是否被禁用
您可以使用
toHaveAttribute
和closest
来测试它。或
toBeDisabled
断言按钮是否启用
要检查按钮是否启用,请使用
not
如下