我有一个带有海峡向前编辑按钮的组件。编辑按钮调用设置isEditing
为的方法true
。
有一些输入元素带有v-if="isEditing"
,所以我正在测试这些输入元素在单击“编辑”按钮后是否可见。
当我的测试运行fireEvent.click(screen.getByRole('link', {name: 'Edit'}))
时,它会更新isEditing
为 true (基于.click
事件之前/之后的我的 console.log 消息),但它似乎没有重新渲染测试中的组件(基于之后在我的终端中呈现的 DOM getByRole 失败)。
它在浏览器中按预期工作,但似乎没有更新规范的 DOM。我正在使用 Vue2、Vue 测试库和 Jest。
执行:
<template>
<a @click.prevent="startEdit" v-if="!isEditing">Edit</a>
<input :v-if="isEditing" />
</template>
...
methods: {
startEdit: () => {
this.isEditing = true
}
}
规格:
describe('FormComponent', () => {
beforeEach(() => {
render(FormComponent)
})
it('displays input tags' () => {
fireEvent.click(screen.getByRole('link', {name: 'Edit'}))
expect(screen.getByRole('input')).toBeInTheDocument()
})
})