Reactで何も表示しない場合にnullを返しているんだけど、どうやってテストすればいいの?
今回は、こういった疑問にお答えします。
少しでもReact等でコンポーネント開発をする場合の参考になれば幸いです。
Sponsored Link
Jestのコンポーネントテストで「何も表示しない」をテストする方法
Reactで開発をしていると、「特定の条件の場合に何も表示しないこと」をテストしたい場合があります。
例えば、以下のようなコードです。
export const Sample = ({ isFalse }) => { if (isFalse) { return null; } return <div>isOk</div>; };
このようなコードでisFalseがtrueの場合にnullを返す(何も表示しない)ことをテストするには、以下のようなテストコードを書けば良いです。
import { render } from "@testing-library/react"; import { Sample } from "./Counter"; describe("Sample", () => { describe("falseの場合", () => { test("何も表示しない", () => { const result = render(<Sample isFalse={true} />); expect(result.container.innerHTML).toBe(""); }); }); });
innerHTMLでレンダリングされたHTMLを見て、それが空(””)かどうかを見ています。
もちろん他にも方法はあるとは思いますが、私は基本この方法でテストしています。
Jestのコンポーネントテストで「何も表示しない」をテストする方法:まとめ
最後にもう一度結論を言うと、Jestのコンポーネントテストで「何も表示しない」をテストするには以下のようなコードを書けばよいです。
import { render } from "@testing-library/react"; import { Sample } from "./Counter"; describe("Sample", () => { describe("falseの場合", () => { test("何も表示しない", () => { const result = render(<Sample isFalse={true} />); expect(result.container.innerHTML).toBe(""); }); }); });
今回は以上となります。
この記事が開発を進める上で少しでも参考になれば幸いです。