0
我已經創建了一個反應應用程序,它具有父級中的所有邏輯(如onchange函數)以及子組件中的所有html呈現。我如何測試具有兒童組件中所有文本字段的反應應用程序?
爲了測試是否正確的狀態變化正在發生,我必須輸入文本到輸入字段並輸入值,但唯一的問題是我不知道如何訪問子元素,當我在js dom中裝入父項。
我應該將邏輯移入子組件嗎?還是我應該只測試父組件的功能?
這是從父
render() {
if (!this.state.accessTokenEntered) {
return <AccessTokenPage _onChange={this._onChange}
accessToken={this.state.inputs.accessToken}
env={this.state.inputs.env}
_onFirstClick={this._onFirstClick}/>;
,這是孩子
const AccessToken = props =>(
<Layout>
<Input name={"accessToken"} displayName={"Access Token"} _onChange={props._onChange}
value={props.accessToken}/>
<DropDown name={"env"} displayName={"Environment"} _onChange={props._onChange}
data={['ppe', 'prod']} multiple={false}
value={props.env}/>
<br/>
<div style={{"textAlign": "center"}}>
<input type="button" onClick={props._onFirstClick} className="btn btn-primary" value="Submit"/>
</div>
</Layout>
);
,這是孩子的孩子
const Input = props => (
<div className="form-group row">
<label className="col-xs-2 col-form-label">{props.displayName}</label>
<div className="col-xs-10">
<input name={props.name} className="form-control" value={props.value}
onChange={props._onChange}/></div>
</div>
);
我可以用間諜測試最低級別的孩子,但我可以測試中級別的組件嗎?就像其他組件一樣,我發現它很難測試 –