Jest: wrapper.find().simulate('keypress', {key: 'Enter', keycode: 13}) 不是函数



从这个问题继续

vue-btn没有';t在输入密钥时提交

我有这个登录页面,可以使用键盘中的"Enter"登录我想在模拟键盘上的回车键时进行单元测试,它可以自动登录。

这是我的测试代码:

describe('Login.vue', () => {
const vuetify = new Vuetify()
const store = new Vuex.Store({
actions: {
login: jest.fn()
}
})
const wrapper = mount(Login, { stubs: ['router-link', 'router-view'], store, vuetify })
it('login using enter key on keyboard', async () => {
wrapper.setData({ email: 'user@example.com' })
wrapper.setData({ password: 'Passw0rd' })

await wrapper.vm.$nextTick()
wrapper.find('[data-cy="input-password"]').simulate('keypress', {key: 'Enter', keycode: 13})
})
})

我已经使用Cypress进行了集成测试,但我想在将其提交到存储库之前先进行单元测试。

这就是我的工作原理:

await wrapper.find('#myFieldID').vm.$emit('keypress', {type: 'enter'});

因此,在这种情况下,行应该是:

wrapper.find('[data-cy="input-password"]').vm.$emit('keypress', {type: 'Enter'})

您可以使用Vue Test Utils:中的触发事件

wrapper.find('[data-cy="input-password"]').trigger('keyup.enter')

最新更新