Vue测试实用程序,Keydown事件不再由测试中的keyCode触发

问题描述 投票:3回答:1

在测试环境中,将vue-test-utils更新为1.0.0-beta.26或更高版本后,keyCode不再触发keydown事件,例如:

Vue

  <div @keydown="onKeydown"></div>

脚本

  public onKeydown (event: KeyboardEvent) {
    if(event.keyCode === 13) {
      this.keyName = 'enter'
    } else if(event.keyCode === 67) {
      this.keyName = 'c'
    }
  }

以前的版本,所有都以keyCode作为参数测试PASS。

// version 1.0.0-beta.25
const wrapper = shallowMount(HelloWorld)
wrapper.find('div').trigger('keydown', { keyCode: 13 })
expect(wrapper.vm.keyName).toBe('enter') // PASS

wrapper.find('div').trigger('keydown', { keyCode: '67' })
expect(wrapper.vm.keyName).toBe('c')  // PASS

更新版本后,我的测试现在失败了。

尝试使用keydown.enter,它对enter键有效,但对'c'键无效。

// version 1.0.0-beta.26
wrapper.find('div').trigger('keydown.enter')
expect(wrapper.vm.keyName).toBe('enter') // PASS

wrapper.find('div').trigger('keydown.c')
expect(wrapper.vm.keyName).toBe('c')  // FAILED

任何建议如何使用a-z键触发按下键盘事件?

keydown vue-test-utils
1个回答
0
投票

您应该通过key作为选项。从official docs

© www.soinside.com 2019 - 2024. All rights reserved.