编辑:我最后使用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()
})
您可以找到这里的代码的其余部分。
发布于 2017-11-19 02:39:16
我查过你在github中的代码了。因为您使用的是e.preventDefault(),所以您也应该模拟它:
Input.simulate('keydown', { preventDefault(){}, key: 'z', keyCode: 90, which: 90 })https://stackoverflow.com/questions/47373106
复制相似问题