Reactjs 无法在react中单元案例的文本区域中包含实时键事件

Reactjs 无法在react中单元案例的文本区域中包含实时键事件,reactjs,unit-testing,textarea,Reactjs,Unit Testing,Textarea,我的代码中有一个文本区域组件。默认情况下,textarea的初始值是comments。我能够通过以下方式模拟组件上的更改: expect(component.find('.text-area').text()).toEqual('comments'); component.find('textarea').simulate('change', { target: { value: 'Comments'}}); expect(component.find('.text-area').text())

我的代码中有一个文本区域组件。默认情况下,textarea的初始值是comments。我能够通过以下方式模拟组件上的更改:

expect(component.find('.text-area').text()).toEqual('comments');
component.find('textarea').simulate('change', { target: { value: 'Comments'}});
expect(component.find('.text-area').text()).toEqual('Comments');
到目前为止,一切都很顺利。但当我试图拥有一个实时角色时,它失败了。我试过了

component.find('.text-area').simulate('keyDown', { which: keycode('k') });

在发布这篇文章之前,我已经参考了很多帖子。无法找到问题。

键控模拟应仅采用键控代码值。试着这样做:

component.find('.text-area').simulate('keyDown', { keyCode: 'k'});
<textarea
    className='text-area'
    onChange={(e) => {
        this.setState({ textArea: e.target.value });
    }}
    onKeyDown={(e) => {
        this.setState({ textArea: e.keyCode });
    }}
>
    {this.state.textArea}
</textarea>
jsx应该是这样的:

component.find('.text-area').simulate('keyDown', { keyCode: 'k'});
<textarea
    className='text-area'
    onChange={(e) => {
        this.setState({ textArea: e.target.value });
    }}
    onKeyDown={(e) => {
        this.setState({ textArea: e.keyCode });
    }}
>
    {this.state.textArea}
</textarea>
{
this.setState({textArea:e.target.value});
}}
onKeyDown={(e)=>{
this.setState({textArea:e.keyCode});
}}
>
{this.state.textArea}

我试过了。当我使用console.log(component.find('.text area').text()打印值时;它仍然显示CommentsYes@salix。我有onKeyDown手柄我在本地试用过,并编辑了我的答案。这样它就通过了测试。