Поскольку вы не предоставляете полный код, вам сложно помочь с вашим текущим компонентом. Вот несколько общих советов:
Одна из целей написания (хороших) модульных тестов для ваших компонентов React - убедиться, что ваш компонент ведет себя и рендерит так, как вы этого хотите. Что я обычно делаю, в этой части нет правильного или неправильного, так это начинаю читать функцию рендеринга сверху вниз и записываю каждую логическую часть.
Пример № 1:
Просто проверьте, установлен ли className
на правом элементе.
class Screen extends Component {
render() {
return (
<div className={this.props.className}>
<h1>My screen</h1>
</div>
);
}
}
it('should set the className on the first div', () => {
const wrapper = shallow(<Screen className="screen" />);
expect(wrapper.hasClass('screen')).toBeTruthy();
});
Пример № 2:
Если компонент отображает деталь условно, вы хотите проверить оба случая.
class Screen extends Component {
render() {
return (
<div className={this.props.className}>
<h1>My screen</h1>
{this.props.subheading ? <h4>{this.props.subheading}</h4> : null}
</div>
);
}
}
it('should not render the subheading when not given by prop', () => {
const wrapper = shallow(<Screen />);
expect(wrapper.find('h4').exists()).toBeFalsy();
});
it('should render the subheading when given by prop', () => {
const wrapper = shallow(<Screen subheading="My custom subheading!" />);
expect(wrapper.find('h4').exists()).toBeTruthy();
expect(wrapper.find('h4').text()).toEqual('My custom subheading!');
});
Я могу привести еще несколько примеров, но я думаю, что вы поймете идею.