我正在嘗試一個簡單的測試來驗證用戶是否可以在文本區域輸入文本,但由于某種原因,模擬方法不起作用。評論框組件class CommentBox extends Component { state = { comment: "" }; handleChange = event => { this.setState({ comment: event.value }); }; handleSubmit = e => { e.preventDefault(); this.setState({ comment: "" }); }; render() { return ( <form> <h4> Add a CommentBox <textarea onChange={this.handleChange} value={this.state.comment} /> <div> <button onSubmit={this.handleSubmit}>Submit Comment</button> </div> </h4> </form> ); }}測試導出默認CommentBox;let wrapped;beforeEach(() => { wrapped = mount(<CommentBox />);});afterEach(() => { wrapped.unmount();});it('has a text area and a button', () => { expect(wrapped.find('textarea').length).toEqual(1); expect(wrapped.find('button').length).toEqual(1);});it('has a text area that users can type in' ,() => { const textarea = wrapped.find('textarea'); textarea.simulate('change', { target: { , value: 'testing' } }); wrapped.update(); expect(textarea.prop('value')).toEqual('testing');});錯誤 :● 有一個用戶可以輸入的文本區域expect(received).toEqual(expected) // deep equalityExpected: "testing"Received: ""
酶模擬不改變textarea
滄海一幻覺
2021-06-01 13:20:53