この非常に単純なコンポーネントrender()
に対して、JestとEnzymeを使用して単体テストを実行しています:
render() {
return (<Input
id='foo'
ref={input => { this.refInput = input }}
/>)
}
it('should render Input', () => {
wrapper = shallow(<Component />)
expect(wrapper.find(Input)).toHaveLength(1)
})
また、Jestのカバレッジオプションを使用しています。
ref={input => { this.refInput = input }}
私のテストではカバーされていません。このサンプルコンポーネントの完全な単体テストを取得するにはどうすればよいですか?
Refはコンポーネントのインスタンスにアタッチされているため、コンポーネントのインスタンスを取得するには mount
を使用する必要があります。
ref
をテストするには、次の行を追加します
expect(wrapper.instance().refInput).toBeTruthy();
最終結果:
render() {
return (<Input
id='foo'
ref={input => { this.refInput = input }}
/>)
}
it('should render Input', () => {
const wrapper = mount(<Component />);
expect(wrapper.find(Input)).toHaveLength(1)
expect(wrapper.instance().refInput).toBeTruthy();
})