javascript - Vue Test Utils - 触发点击事件后数据不更新
问题描述
我使用 Vue Test Utils 进行了这个基本测试:
import { mount } from '@vue/test-utils'
const App = {
template: `
<p>Count: {{ count }}</p>
<button @click="handleClick">Increment</button>
`,
data() {
return {
count: 0
}
},
methods: {
handleClick() {
this.count += 1
}
}
}
test('it increments by 1', async () => {
const wrapper = mount(App, {
data() {
return {
count: 0
}
}
})
expect(wrapper.html()).toContain('Count: 0')
await wrapper.find('button').trigger('click')
expect(wrapper.html()).toContain('Count: 1')
})
只有当我要么
- 不要将任何自定义数据发送到 mount 方法,或者
- 强制重新渲染,
wrapper.vm.$forceUpdate()
在触发事件后使用。
但是,根据文档,它不应该像已经写好的那样通过吗?
解决方案
测试很好,在 vue2 中你必须向模板添加根。组件模板应该只包含一个根元素。
<div>
<p>Count: {{ count }}</p>
<button @click="handleClick">Increment</button>
</div>
推荐阅读
- python - Keras 中的正则化层不起作用
- java - button triggers frame.repaint() even when I did not tell it to. What did I do wrong?
- c++ - if vs 处理不同场景时的函数调用性能
- php - 如何使用两个条件进行 Laravel 验证?
- javascript - SheetJS js-xlsx - 在单元格范围内添加超链接公式
- c++ - How do I concatenate strings with chars in C++?
- angular - Ionic 4 wordpress 身份验证
- java - 如何不序列化 Spring Boot @RestController 中的 @Id 字段?
- postgresql - Truncate all tables in Postgres with a suffix
- python - UpperCase 的问题,str 对象没有属性“isUpperCase”