Ошибка ReactWrapper :: setProps () при попытке установить реквизиты Redux в компоненте для теста Jest / Enzyme - PullRequest
0 голосов
/ 17 сентября 2018

Я пишу модульный тест для компонента React , который подключен к Redux . Одной из функций компонента является то, что он отображает данные, если questionReducer.showquestions == true. Я попытался воссоздать эту функцию в компоненте, установив реквизиты с помощью wrapper.setProps({ questionReducer: { showquestions: true } }). Однако, когда я пытаюсь использовать этот подход, я получаю сообщение об ошибке:

ReactWrapper::setProps() expects a function as its second argument

Как правильно установить параметры для подключенного редуктора в тестируемом компоненте?

1 Ответ

0 голосов
/ 17 сентября 2018

Вы должны протестировать компонент самостоятельно, без подключения к Redux. Это позволяет вам давать реквизит непосредственно компоненту.

Пример:

export class Component_ extends React.Component {
  // your component logic here
}

const mapStateToProps = {
  showQuestions: questionReducer.showquestions
}

const Component = connect(mapStateToProps)(Component_)
export default Component

И тогда в тесте вы можете просто сделать это

const wrapper = shallow(<Component_ showQuestions={true} />
...