Ваш подход правильный, хотя синтаксис, к которому я привык, был бы export class MyComponent extends Component {...}
.
На мой взгляд, подключенные компоненты на самом деле не нуждаются в модульных тестах, так как вы должны верить, что все вовлеченныедетали (mapStateToProps
, mapDispatchToProps
, connect
) работают из коробки. В конце концов, это из внешней библиотеки.
Ни mapStateToProps
, ни mapDispatchToProps
не должны быть слишком сложными, mapStateToProps
делегирует сложные вещи селекторам (которые вы можете выполнить модульным тестированием независимо), а mapDispatchToProps
просто помещаетредуцировать действия в объекте или выполнять небольшое отображение (когда действия отправляются с аргументами, отличными от того, что компонент React видит, например). В последнем случае вы можете экспортировать mapDispatchToProps
и тестировать его по отдельности, имитируя только функцию диспетчеризации.
Это гораздо меньше усилий, чем объединение всех насмешек для реального подключенного компонента, который фермент может mount()
. Однако иногда это может быть необходимо, но я считаю это скорее интеграционным тестом.