使用酶和玩笑,如果我想让道具设置具有1个或多个输入的组件的默认输入值,如何访问输入以验证其文本值?
使用以下示例,未找到任何节点,但出现错误
Method “text” is meant to be run on 1 node. 0 found instead.
注册组件:
componentDidMount() {
this.setState({
username: this.props.username
})
}
render() {
const nameInput = (<Row key={"username"}><Form.Control id="username" value={this.state.username} onChange={this.onChange}/></Row>)
return (
<div id="registerarea" className="registerarea">
{nameInput}
</div>
);
}
Test
it("renders with username", () => {
const props = {username: "Santa Clause"}
const RegisterComponent = mount(<Register {...props}/>);
expect(RegisterComponent.find('username').text()).toEqual('Santa Clause')
});
[您应该使用Enzyme的.find()方法来代替<Row />
组件(我假设Row
组件在此组件中仅渲染一次)。
expect(RegisterComponent.find(Row).text()).toEqual('Santa Clause')
这将允许您查找与该组件匹配的节点。