gpt4 book ai didi

javascript - 在 React 中测试按钮的禁用状态

转载 作者:行者123 更新时间:2023-11-29 18:00:54 25 4
gpt4 key购买 nike

我有一个简单的组件,我想使用 React 和 ReactUtils 进行测试。

var TextConfirmButton = React.createClass({
getInitialState: function() {
return {
inputText: '',
confirmText: this.props.confirmText,
buttonEnabled: false,
inputEnabled: true
}
},

handleChange: function(event) {
this.setState({ inputText: event.target.value });
},

handleConfirm: function() {
this.props.onConfirmClick();
// When user clicks the confirm button, disable both the input and button.
this.setState({ buttonEnabled: false, inputEnabled: false });
},

render: function() {
return (
<div>
<input onChange={this.handleChange} disabled={!this.state.inputEnabled} type='text' ref='text' placeholder={this.state.confirmText} />
<button onClick={this.handleConfirm} disabled={this.state.inputText !== this.state.confirmText} className='btn btn-danger'>Delete</button>
</div>
)
}
})

有没有办法测试按钮的禁用状态?

我尝试过:

var TestUtils = React.addons.TestUtils;

describe('TextConfirmButton', function () {
it('starts with confirm button disabled', function () {
var onConfirmClick = function() {
console.log("Confirm click");
}

var textConfirmButton = TestUtils.renderIntoDocument(
<TextConfirmButton confirmText="example" onConfirmClick={this.onConfirmClick} />
);

var textConfirmButtonNode = ReactDOM.findDOMNode(textConfirmButton);

expect(textConfirmButtonNode.disabled).toEqual('disabled');
});
});

但是测试失败,错误:textConfirmButtonNode.disabled undefined。所以 .disabled 显然是错误的做法。

有什么建议吗?

最佳答案

您需要使用 TestUtils#findRenderedDOMComponentWithTag为了能够查询 TestUtils 生成的 DOM。

var textConfirmButtonNode = 
TestUtils.findRenderedDOMComponentWithTag(textConfirmButton, 'button');

expect(textConfirmButtonNode.disabled).toEqual(true);

关于javascript - 在 React 中测试按钮的禁用状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35037431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com