【发布时间】:2015-07-09 11:22:49
【问题描述】:
我正在尝试在我的 react 应用程序中测试邮政编码搜索组件。下面是我的组件和单击处理程序,它使用超级代理从 api 获取数据。我有 karma、jasmine 和 webpack 设置并运行基本组件测试,但我如何模拟数据和用户输入?我有一个数据文件中的所有 json。我可以使用 stubbing 和 mocking 获得一个简单的示例设置吗?
render: function () {
return (
<div className="mainContent add-school-page">
<Loader loaded={this.state.loaded}>
<div className="content has-header">
<div className="list">
<label className="item item-input item-stacked-label">
<span className="input-label">Postcode</span>
<input ref="postcode" type="text" placeholder="A12 3BC"/>
</label>
</div>
<div className="padding">
<button className="button button-block button-positive clickable"
onClick={this.searchByPostcode}>
Find School
</button>
</div>
<SearchResults results={this.state.results} />
<br />
<br />
</div>
</Loader>
</div>
);
},
searchByPostcode: function() {
var postcode = React.findDOMNode(this.refs.postcode).value;
var url = OsaApiService.buildRequestUrl('find_schools_postcode', [postcode]);
fetch(url)
.then(function (response) {
return response.json();
}).then(function (json) {
this.setState({
results: json.data,
});
}.bind(this)).catch(function (ex) {
console.log(ex);
});
}
谁能告诉我如何开始?
我尝试过 Jest,但测试需要很长时间才能完成,而作为监视任务需要很长时间。
【问题讨论】:
标签: javascript unit-testing mocking reactjs