В итоге я использовал Enzyme, чтобы проверить, передавались ли реквизиты компонентам, поэтому окончательный тест закончился так:
it(`passes down the correct props to child components`, () => {
const wrapper = shallow(<BlogLayout {...props} />);
expect(wrapper.find(Sidebar).props().categories).toMatchObject(props.categories);
expect(wrapper.find(Sidebar).props().currentCategory).toMatchObject(props.currentCategory);
});
Я представлял, что лучший способ протестировать этот компонент - просто проверить, передаются ли правильные реквизиты его дочерним элементам. Но чтобы сделать это, используя react-testing-library
, я бы просто повторил модульные тесты, уже определенные в обоих дочерних компонентах (они проверены на правильность рендеринга своих реквизитов). Таким образом, Enzyme помогает мне найти экземпляр каждого дочернего компонента и просто проверить, совпадают ли их реквизиты с пропуском для тестируемого компонента.
Таким образом, я не повторяю себя в разных тестах и все еще уверен, что мое приложение работает как положено.
Если у кого-то есть еще мысли по поводу этого или лучшего решения, я был бы очень рад попытаться обновить правильный ответ, если я считаю, что он действительно лучше.