Я следующий тест для React приложения:scryRenderedComponentsWithType возвращает пустой массив
it('has 7 NavBarItems',() => {
const component = ReactTestUtils.renderIntoDocument(<App />);
const navBarItems = ReactTestUtils.scryRenderedComponentsWithType(
component,
NavBarItem);
expect(navBarItems.length).toEqual(7);
});
Когда App
компонент оказывается в не тестовой среде, NavBar с 7 дочерних компонентов NavBarItem создается в верхней экрана, чтобы облегчить навигацию по всему приложению.
NavBarItem
класс выглядит следующим образом:
class NavBarItem extends Component {
render() {
return (
<div id={this.props.id}
className={"NavBarItem" + (this.props.active ? " active" : "") + (this.props.visible ? "" : " hidden")}
onClick={e => this.props.navBarClick(e.target.id)}>
{this.props.title}
</div>
);
}
}
Однако тест всегда терпит неудачу, потому что scryRenderedComponentsWithType
всегда возвращает пустой массив, даже когда я помещал добавить вызовы jest.dontMock
как для App
и файла, из которого NavBarItem
импортируется. Я использую это неправильно или просто хочу?
Вы все это понимаете? – Srmuhs
Примечание: scryRenderedComponentsWithType НЕ работает с новыми компонентами без состояния, введенными в реакции v0.14. – Larrydx