跳至内容

常见问题解答

使用 Vitest 模拟日期和计时器

Vue 的调度程序依赖于系统时间。确保在调用 vi.setSystemTime 之后 挂载组件,因为 Vue 依赖于其副作用。在调用 vi.setSystemTime 之前挂载组件可能会导致反应性中断。

请参阅 vuejs/test-utils#2074.

Vue 警告:设置道具失败

[Vue warn]: Failed setting prop "prefix" on <component-stub>: value foo is invalid.
TypeError: Cannot set property prefix of #<Element> which has only a getter

如果您使用 shallowMountstubs 以及与 Element 共享的属性名称,则会显示此警告。

Element 共享的常见属性名称

  • 属性
  • 孩子
  • 前缀

请参阅:https://mdn.org.cn/en-US/docs/Web/API/Element

可能的解决方案

  1. 使用 mount 而不是 shallowMount 来渲染而不使用存根
  2. 通过模拟 console.warn 来忽略警告
  3. 重命名道具以避免与 Element 属性冲突