酶-访问表格输入以验证安装值是否反映道具

问题描述 投票:0回答:1

使用酶和玩笑,如果我想让道具设置具有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')
});
reactjs enzyme jest
1个回答
0
投票

[您应该使用Enzyme的.find()方法来代替<Row />组件(我假设Row组件在此组件中仅渲染一次)。

expect(RegisterComponent.find(Row).text()).toEqual('Santa Clause')

这将允许您查找与该组件匹配的节点。

© www.soinside.com 2019 - 2024. All rights reserved.