В React JS как выполнить модульное тестирование функции, которая находится в контейнере? - PullRequest
0 голосов
/ 04 октября 2019

Я пытаюсь смоделировать нажатие кнопки и проверить, что происходит на основе этого нажатия. Я попробовал насмешливую функцию. Но не сработало. Как мы проверяем операторы внутри функции?

Я попытался смоделировать функцию, чтобы увидеть, была ли она вызвана. Но я всегда получаю фиктивную функцию, которая не вызывается

updateSelect =(e, model) => {
    window.alert('test');
    const value = e.type === "keyup" ? 
    e.target.parentNode.childNodes[2].innerText : e.target.innerText;
    if(!isEmpty(value)){
      this.setState({text: value});
      this.props.returnedValue({name : model, value});
    }
}

<button className="test" onClick={(e)=>this.updateSelect(e, model)}>Click</button>

Я ожидаю, что либо функция должна быть вызвана, либо должно быть выполнено хотя бы несколько операторов в функции

1 Ответ

0 голосов
/ 04 октября 2019

Вы не можете смоделировать функцию, которая находится внутри компонента. Вы должны получить элемент по className или элементу и смоделировать событие клика. При моделировании события нажатия убедитесь, что вы передаете эти 2 параметра (макетируйте 2 параметра и пропустите его). Надеюсь, что вы используете энзим и Jest / Mocha. Для справки Ссылка .

Также в утверждениях проверяйте ожидаемый вывод функции (значение в состоянии и т. Д.) И не проверяйте, вызывается функция или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...