【问题标题】:Vue Testing - '... .push is not a function'Vue 测试 - '... .push 不是函数'
【发布时间】:2021-03-18 03:44:03
【问题描述】:

我正在尝试测试向现有对象添加新条目的组件方法。

addTag: function () {
  this.value[this.field.key].push(this.tag)
  this.tag = ''
}

我只是想通过在我的测试中调用该方法

    wrapper.setProps({
      field: {
        key: 'tag'
      },
      value: {
        tag: {}
      }
    })
...
    wrapper.vm.addTag()

但它会抛出错误

TypeError: this.value[this.field.key].push is not a function

我已经预先设置了所有需要的数据和道具(field.key 和 tag),所以这不是问题。运行其他方法完全正常,push 似乎是问题

【问题讨论】:

    标签: javascript unit-testing vue.js jestjs vue-test-utils


    【解决方案1】:

    这是因为this.value['tag']是一个对象,而不是数组,所以没有push方法。

    将其定义为数组会改变这一点:

    wrapper.setProps({
      field: {
        key: 'tag'
      },
      value: {
        tag: []
      }
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-08
      • 2019-12-11
      • 2021-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多