【发布时间】:2018-01-30 14:42:01
【问题描述】:
包:Jest、Enzyme 和 Nock,它们不起作用。
我有以下 React 组件:
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)。
理想情况下,我想浅渲染组件,模拟点击事件并断言状态已更改(相应地)。
我尝试了各种方法,但要么我的测试没有等待请求返回,要么我没有真正模拟请求。
你能指教一下吗?
【问题讨论】:
标签: reactjs unit-testing mocking jestjs request-promise