等待 onMounted() 完成内部测试

Posted

技术标签:

【中文标题】等待 onMounted() 完成内部测试【英文标题】:Wait for onMounted() to finish inside test 【发布时间】:2021-12-08 22:49:36 【问题描述】:

在我的设置中,我在 onMounted 函数中执行了几个函数。在我的测试中,我想等待这些完成。我怎样才能做到这一点?

我尝试使用nextTickflushPromises(尽管没有任何承诺),但它们都不起作用。

下面是一些示例代码:

Vue 组件:

setup() 
  const mounted = ref(false);
  onMounted(() => 
    mounted.value = true;
  )

测试:

describe('TestComponent', () => 
  const wrapper = shallowMount(TestComponent)
  it('expects mounted to be true after mount', () => 
    expect(wrapper.vm.mounted).toBe(true)
  )
)

【问题讨论】:

你得到的错误是什么? 我没有收到错误。测试失败,因为运行测试时“已安装”变量仍然为假 如果测试失败,说明有错误。请列出来。 【参考方案1】:

缺少的是在设置组件后导出数据:

setup() 
  const mounted = ref(false);
  onMounted(() => 
    mounted.value = true;
  )

  return  mounted ;

【讨论】:

以上是关于等待 onMounted() 完成内部测试的主要内容,如果未能解决你的问题,请参考以下文章

iOS 测试飞行内部 Beta 测试 - 添加第二个版本?

等待内部带有承诺的 forEach 完成

等待异步功能完成内部地图

接口测试理论

软件联调测试

软件联调测试