これは、私の反応コンポーネントに返されるDropdown.Item要素の配列を取得する方法です。反応レンダー機能のマップ結果をテストするにはどうすればよいですか?
render() {
const { data } = this.props
if (data) {
return data.map((item, index) => {
return <Dropdown.Item
text={item.title}
key={index}
/>
})
}
return null
}
返された結果をテストしようとしていますが、テストはrecieved.length: 0
で失敗します。 私は問題がマップを返すと思います...どうすればそれをテストする必要がありますか?
it('should render dropdown items',() => {
wrapper = shallow(<Component data={data} />)
expect(wrapper.find(Dropdown.Item)).toHaveLength(2)
})
:
[ { _id: '1', title: 'Item 1' }, { _id: '2', title: 'Item 2' } ]
更新
これは私のために働いている:
expect(wrapper.at(0).find(Dropdown.Item)).toHaveLength(2)
しかし、なぜ私は0123を使用する必要があります?
テストで 'data'変数がどのように定義されていますか。 – zerkms
@zerkms投稿を更新しました... – user3142695