首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Vue-test-utils包装器未通过

Vue-test-utils包装器未通过
EN

Stack Overflow用户
提问于 2020-10-16 01:42:53
回答 1查看 315关注 0票数 0

我正在为我的组件编写以下测试:

代码语言:javascript
复制
  test('display the bar when start is called', () => {
    const wrapper = shallowMount(ProgressBar)
    expect(wrapper.classes()).toContain('hidden')
    wrapper.vm.start()
    console.log(wrapper.vm.hidden) // false
    console.log(wrapper.vm.start()) // undefined
    expect(wrapper.classes()).not.toContain('hidden')
  })

  test('sets the bar to 100% width when the finish is called', () => {
    const wrapper = shallowMount(ProgressBar)
    expect(wrapper.element.style.width).toBe('0%')
    wrapper.vm.start()
    wrapper.vm.finish()
    expect(wrapper.element.style.width).toBe('100%')
  })

在我的ProgressBar组件中,我有:

代码语言:javascript
复制
<template>
  <div :class="{ hidden: hidden }" :style="{ width: `${percent}%` }"
></div>
</template>

<script>
export default {
  data () {
    return {
      hidden: true,
      percent: 0
    }
  },
  methods: {
    start () {
      this.hidden = false
    },
    finish () {
      this.percent = 100
      this.hidden = true
    }
  }
}
</script>

但是测试失败了,因为它仍然显示隐藏为真,百分比为0,是不是我做错了什么?

这是repo

EN

回答 1

Stack Overflow用户

发布于 2020-10-16 03:40:10

您应该等待处理修改所需的下一个标记,如下所示:await wrapper.vm.$nextTick()

代码语言:javascript
复制
test('display the bar when start is called', async () => {
    const wrapper = shallowMount(ProgressBar)
    expect(wrapper.classes()).toContain('hidden')
    wrapper.vm.start()

    await wrapper.vm.$nextTick()

    console.log(wrapper.vm.hidden) // false
    console.log(wrapper.vm.start()) // undefined
    expect(wrapper.classes()).not.toContain('hidden')
  })
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64377042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档