私はReact Nativeアプリケーションでコンポーネントの機能をテストするためにJestとEnzymeのテストを書いています。親クラスから子クラスをテストするために関数を呼び出す
インスタンス化するために親のメソッドを使用した親コンポーネントと子コンポーネントがあります。それは親ですので、
const TeamDetail = React.createClass({
propTypes: {
team: PropTypes.object.isRequired,
...[INSERT MANY REQUIRED PROPS HERE]
viewTeamMessageFeed: PropTypes.func.isRequired,
},
... INIT LOGIC ...
render() {
return (
<TabContainer
containerStyle={styles.tabContainer}
primaryTab={'board'}
tabs={this.tabs()}
/>
)
},
tabs() {
let tabs = [
this.tab('board', this.renderBoard()),
];
return (tabs);
},
tab(name: string, panel: Object) {
let empty = true;
return({name: name, panel: panel, empty: empty})
},
renderBoard() {
return(
<LeagueTeamAbout
item={this.props.team}
details={this.teamDetails()}
/>
)
},
...MORE METHODS...THIS NEXT ONE IS IMPORTANT:
renderMessagingButton() {
if (this.props.canMessage) {
return (
<StyledButton buttonText='Messaging' onPress={() => this.props.viewTeamMessageFeed(this.props.team)} />
);
}
return null;
...
OK:ここでは、詳しく説明し
は、親クラスの要約版です。
私は親コンポーネントコンポーネントはteamDetails()メソッドによって設定された内容の性質を持っていることを<LeagueTeamAbout/>
をテストしています。 teamDetails()
は、renderMessagingButton()
メソッドによって設定されたメッセージング属性を含む詳細オブジェクトを返します。
messagingButton
は、ユーザーがタップしたときにviewTeamMessageFeed()
メソッドを実行することを期待するテストを作成しようとしています。
このテストを作成するにはどうすればよいですか?私は何とかrenderMessagingButton()
に電話して、LeagueTeamAbout
の詳細オブジェクトを模擬する必要があります。
親コンポーネントのrenderMessagingButton()
関数をLeagueTeamAbout-test.js
ファイルから呼び出すにはどうすればよいですか?