React Testing LibraryでReactのコンポーネントのテストを書いていた
今どのような状況だっけ?
みたいなときにレンダリングされているHTMLを実際に見たい
そういうときにReact Testing Libraryのdebug
を使ってHTMLを表示する
普通にimport
で呼べばOKかなと思って調べてみたらrender
でいろいろ返ってくる中にも入っていたためそっちを使うようにしてみた
- サンプル
import { render } from "@testing-library/react"
const {debug, baseElement, container, getByTestId, getAllByTestId, getByTitle, getByPlaceholderText } = render(
<Hoge></Hoge>
)
型定義を見に行ったらcontainer
,baseElement
,debug
なども返却値に含まれていた
このあたりを活用すれば中身を見ることができそう
import { render } from "@testing-library/react"
const {debug, baseElement, container, getByTestId, getAllByTestId, getByTitle, getByPlaceholderText } = render(
<Hoge></Hoge>
)
debug(baseElement)
debug(container)
- baseElement
<body>
<div>
.....
</div>
</body>
baseElement
はbody
で囲われている、このタグはデフォルトはdocument.body
でrender
時に指定した場合は指定したタグになるらしい
- container
<div>
.....
</div>
テスト対象の要素外へのイベント発行
要素外をクリックしたら非表示になるか
みたいなテストを今回は含めたかったのでbaseElement
をクリックすることで実現できた
import { render } from "@testing-library/react"
const {baseElement, getByTitle } = render(
<Hoge></Hoge>
)
await user.click(baseElement)
// click後DOMが変わっているか確認する
で、この辺調べたらrender
で返ってくる値のドキュメントがあった
何か1つ単語が分かると芋づる式に把握することが増えていくがそれらを調べていくと結局ドキュメント読むのが一番だよねとうい結論にたどり着くなー
最初からドキュメントを読みましょう案件