Я тестирую компонент React, используя Jest и Enzyme, и испытываю трудности с проверкой правильности (или вообще) вызова деблокированной функции.Я упростил приведенный ниже код компонента (отредактирован, чтобы сделать код еще проще), ссылка на codepen здесь
// uses lodash debounce
class MyApp extends React.Component {
constructor(props) {
super()
this.state = {name: "initial value"};
this.debouncedFunction = _.debounce(this.debouncedFunction, 3000);
this.handleClick = this.handleClick.bind(this)
}
debouncedFunction () {
this.setState({name: "after delay, updated value"});
}
handleClick() {
this.debouncedFunction();
}
render() {
return (
<div>
<p>{this.state.name}</p>
<button onClick={this.handleClick}>
click for debounced function
</button>
</div>
);
}
}
Я подумал, что тест для отрицаемых функций должен быть очень похож на тот, которыйявляется необъявленным, но с setTimeout
или Promise
(с утверждением expect
внутри .then
или .finally
).После многих испытаний, использующих обе эти идеи, я уже не уверен в этом.Есть идеи?