无法模拟keyDown(jest +酶)

时间:2017-11-19 02:18:39

标签: reactjs jestjs enzyme

编辑:我最终使用onChange来更新值,这有利于模拟整个字符串,而不是单个字符。

我使用keydown来辨别是更新输入值还是添加待办事项。

该功能在浏览器中进行测试时有效,但在使用酶模拟时,todo不会添加到快照中(就好像模拟永远不会发生一样)。



it('should add a new todo', () => {
  const component = mount(<TodoList />)
  const Input = component.find('.new-todo-input')
  let wrapper = toJson(component);
  
  expect(wrapper).toMatchSnapshot()
  
  Input.simulate('keydown', { key: 'z', keyCode: 90, which: 90 })
  Input.simulate('keydown', { key: 'Enter', keyCode: 13, which: 13 })
  
  wrapper = toJson(component);
  
  expect(wrapper).toMatchSnapshot()
})
&#13;
&#13;
&#13;

您可以找到the code here的其余部分。

1 个答案:

答案 0 :(得分:0)

我查了your code in github。因为您使用的是e.preventDefault(),所以您也应该嘲笑它:

 Input.simulate('keydown', { preventDefault(){}, key: 'z', keyCode: 90, which: 90 })