包:Jest,Enzyme,(和 Nock 不起作用)。
我有以下反应组件:
import ...
const request = require('request-promise-native');
class SomeSearchContainer extends Component {
constructor(props) {
super(props);
this.state = {
...
};
};
onResponse = (response) => {
const { var1, var2 } = response;
if (var1) {
this.setState(...)
}
};
onSubmit = (event) => {
const someId = this.props.someId;
if (someId.length === 4) {
request(
{
uri: `${location.href}api/${someId}`,
json: true,
}).then(this.onResponse)
.catch(this.props.onResponseError);
} else {
this.setState(...)
}
};
render() {
return (
<button id="btn-search" onClick={this.onSubmit}>Search</button>
);
}
}
export default SomeSearchContainer;
我正在尝试为此实施单元测试,因此我想模拟 request-promise-native 并且assert
阶段已根据结果(onResponse
)相应地更改。
理想情况下,我想浅渲染组件,模拟单击事件并断言状态已更改(相应地)。
我尝试了各种方法,但要么我的测试没有等待请求返回,要么我没有真正模拟请求。
您能否提一些建议 ?