Скажем, у меня есть следующее приложение:
class Child extends React.Component {
render() {
return <button onClick={this.handleChildOnClick}>{this.props.children}</button>;
}
handleChildOnClick() {
this.props.onChildClick('foo');
}
}
class Parent extends React.Component {
render() {
return <Child onChildClick={this.handleParentOnClick}>click me</Child>;
}
handleParentOnClick(text) {
this.props.onParentClick(12345);
}
}
class App extends React.Component {
render() {
return <Parent onParentClick={(num) => console.log(num)} />;
}
}
Мне трудно понять, как правильно протестировать компонент Parent
. Child
и App
не проблема, а _5 _...
Я имею в виду, как мне проверить, что щелчок по компоненту Child
будет вызывать обратный вызов Parent
без:
- ... рендеринг
Child
.Parent
следует тестировать изолированно как неглубокий рендер.Child
также будет протестирован изолированно, и если я сделаю рендеринг монтирования, я в основном дважды проверяю обратный вызов щелчка наChild
. - ... прямой вызов
handleParentOnClick
в экземпляреParent
. Я не должен полагаться в этом на точную реализациюParent
. Если я изменю имя функции обратного вызова, тест прервется, и это вполне может быть ложным срабатыванием.
Есть третий вариант?