在调用 mounted 之前如何使用 Vue-Test-Utils 在组件中设置数据值?

新手上路,请多包涵

我将 Jest 与 Vue-Test-Utils 一起使用。我一直在使用的代码如下所示:

 beforeEach(() => {
  wrapper = shallow(GridContainer, {
    data: {
      pageSize: count
    },
    propsData: {
      userId,
      managerId
    }
  })
})

在此示例中,我想在调用安装的生命周期之前设置 pageSize 值。上面代码的问题是我在测试运行时开始收到以下警告:

 [Vue warn]: Do not use built-in or reserved HTML elements as component id: data

当我删除上面的数据属性时,警告消失了。

我是否正确设置了数据?如果是这样,我应该如何处理警告?

我应该以其他方式设置数据吗?

原文由 Daryn 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 468
2 个回答

我的解决方案是在初始化中将数据定义为函数:

 beforeEach(() => {
  wrapper = shallow(GridContainer, {
    propsData: {
      userId,
      managerId
    },
    data: function() {
      return {
        pageSize: count
      }
    }
  })
})

就我而言,yukihirop 使用 setData() 提供的解决方案无效。

我的组件正在从我的测试环境中未定义的窗口对象访问数据。此数据正在模板中输出。这导致在安装后立即抛出异常 - 在我有机会调用 setData() 之前。

原文由 Nicholas Betsworth 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题