Так что я не уверен, извлекли ли вы какой-то код из компонента на основе классов, но renderItem
сам по себе является компонентом.Возможно, я могу дать вам некоторый тестовый код для этого, и вы можете адаптировать его под свои нужды, предполагая, что вы импортировали мелко и настроили переменную item:
describe('renderItem', () => {
it('should display as a ListItem', () => {
const wrapper = shallow(<renderItem item={item} />);
expect(wrapper.find(ListItem).length).toEqual(1);
});
});
Есть две ключевые вещи, которые отличаются от вашего примера,Первый - я предполагаю, что вы импортировали ListItem
в свой тест.Затем вы можете передать это непосредственно в find
.Второй бит - вы хотите передать результат поиска и проверки длины в expect
и проверить его значение.Подумайте, что это «то, что я хочу проверить» (количество ListItem
компонентов, которые он может найти), и затем вы создаете свое утверждение (toEqual(1)
).
Дополнительная информация для отражения вопроса Править
В вашей настройке я бы не стал проверять renderItem
напрямую.Вместо этого я бы обеспечил полное тестирование ListItem
, а затем утверждал бы, как MyList
рендерит FlatList
.Это можно сделать, используя expect(wrapper).toMatchSnapshot()
, или даже лучше, заявив кое-что о реквизите, заданном FlatList
.Если вы действительно параноики по поводу всего этого, возможно, используйте mount
вместо мелкого, чтобы сделать это полностью.