编辑:我最终使用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;
您可以找到the code here的其余部分。
答案 0 :(得分:0)
我查了your code in github。因为您使用的是e.preventDefault()
,所以您也应该嘲笑它:
Input.simulate('keydown', { preventDefault(){}, key: 'z', keyCode: 90, which: 90 })