web-dev-qa-db-ja.com

Jest Enzymeテストa React renderメソッドでnullを返すコンポーネント

特定の条件下でのレンダリングでnullを返すコンポーネントがあります。

render() {
  if (this.props.isHidden) {
      return null;
  }

  return <div>test</div>;
}

Jestと酵素でisHiddenがtrueの場合、コンポーネントがnullかどうかを確認したい:

describe('myComp', () => {
    it('should not render if isHidden is true', () => {
        const comp = shallow(<myComp isHidden={true} />);
        expect(comp.children().length).toBe(0);
    });
});

これは機能しますが、このテストを書くためのより慣用的な方法はありますか? nullとしてレンダリングされるコンポーネントのテストは、非常に一般的なシナリオです。

21
klugjo
_   expect(comp.type()).toEqual(null)
_

それでおしまい!

または:expect(comp.get(0)).toBeFalsy()

24
Abdennour TOUMI

による - ShallowWrapper::html 実装は、renderの結果として、コンポーネントインスタンスタイプがnullの場合、nullを返します。

expect(comp.html()).toBeNull();
17
Shoaib Nawaz

ShallowWrapperには isEmptyRender() 関数があります:

expect(comp.isEmptyRender()).toBe(true)
11
Benjamin Intal