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ノードを返すことですが、テストでは、<button>
ノードのdisable
属性を確認する必要があります。そのようなテストケースを処理するベストプラクティスは何ですか?いくつかの解決策がありますが、それらはすべて少しずれているように見えます。
data-test-id
要素には<button>
を使用します<Click />
コンポーネントの祖先の1つを選択してから、ボタンwithin(...)
this scopeを選択しますfireEvent
で選択した要素をクリックし、何も起こらないことを確認しますより良いアプローチを提案できますか?
次のように@testing-library/react
を使用するだけで、ボタンの無効化プロパティをテストできます。
例:
import { render } from '@testing-library/react';
const {getByText} = render(<Click/>)
expect(getByText('Click me').closest('button').disabled).toBeTruthy()