代码之家  ›  专栏  ›  技术社区  ›  greatTeacherOnizuka

在文本区域输入上进行Jest测试编写

  •  1
  • greatTeacherOnizuka  · 技术社区  · 4 年前

    我试图使用Jest将一些模拟字符串写入文本区域,然后按Enter键,但无论出于什么原因,它都不起作用。到目前为止我的代码:

    test('Should add a message', () => {
      const element = wrapper.find('textarea');
      element.instance().value = 'abc';
      element.simulate('keypress', { key: 'Enter' });
    
      const newWrapper = wrapper.find('user');
      expect(newWrapper.length).toBe(1);
    });
    

    我的组件:

    <textarea
      onKeyUp={sendMessage}
      placeholder='Type your message here and press enter to send...'
      cols='30'
      rows='5'
    ></textarea>
    

    为了清楚起见,当以下测试通过时,文本区域肯定存在:

    test('Should have a textarea', () => {
      const element = wrapper.find('textarea');
      expect(element.length).toBe(1);
    });
    
    0 回复  |  直到 4 年前
        1
  •  1
  •   Barry Michael Doyle    4 年前

    就你而言,你要找的是 'keyUp' ,不 'keypress' .而不是 key ,使用 keyCode The 密钥代码 对于 Enter 13 .

    这样地:

    element.simulate('keyUp', { keyCode: 13 });
    
    推荐文章