Подтвердить что ты не робот

Jest Enzyme тестирует компонент React, который возвращает null в методе визуализации

У меня есть компонент, который возвращает null в рендеринг при определенных условиях:

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

  return <div>test</div>;
}

Я хочу проверить, является ли компонент нулевым, когда isHidden является истинным со шуткой и ферментом:

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

Это работает, но есть ли более идиоматический способ написать этот тест? Тестирование компонентов, которые отображаются как нулевые, является довольно распространенным сценарием.

4b9b3361

Ответ 1

   expect(comp.type()).toEqual(null)

Что это!

или: expect(comp.get(0)).toBeFalsy()

Ответ 2

В соответствии с реализацией ShallowWrapper::html возвращает null, если тип экземпляра компонента имеет значение null, в результате render.

expect(comp.html()).toBeNull();

Ответ 3

ShallowWrapper имеет функцию isEmptyRender():

expect( comp.isEmptyRender() ).toBe( true )