javascript - 开玩笑: wrapper.find().simulate('keypress', {key: 'Enter', keycode: 13}) 不起作用
问题描述
从这个问题继续
我有这个登录页面,可以使用键盘上的“Enter”登录我想在模拟键盘上的 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'})
推荐阅读
- spring-boot - java.net.SocketException:外部 REST 调用上的连接重置
- javascript - bootstrap 4双列表框更改项目边框颜色
- web-services - 如何使用行程数据建立像 rome2rio.com 这样的旅行计划网站?
- tableau-api - 如何使用表格中多边形的 GEOJSON 文件加入雪花表(没有坐标但存在地址)?
- node.js - AWS Lambda、NodeJS、pg-promise 库 - 高延迟 > 10000 毫秒
- racket - 在 Beginner Racket 中创建 Python 的 collections.counter() 方法
- swift - 如何在 IOS 14 swift 中显示下拉按钮菜单
- c# - AutoMapper - 试图将我的对象属性展平为字符串但出现错误
- msbuild - 如何使用 msbuild 从解决方案构建中排除项目?
- android - Android 应用程序在通过 Android Studio 安装时可以工作,但在通过 Google Play 安装和打开时会显示一些设置页面