Почему мой массив обновляется, когда метод называется живым, а не в модульных тестах? - PullRequest
1 голос
/ 30 марта 2019

У меня есть метод с именем toggleSelect, который добавляет и удаляет объекты из массива с именем selectedItems. Это прекрасно работает в браузере. Кажется, он не работает во время моего юнит-теста. Не понятно почему, потому что я вызываю его непосредственно из компонента и передаю ему аргумент. Если я console.log() элемент внутри метода, он отображается правильно в журнале. Метод запускается, но массив никогда не обновляется, чтобы убедиться, что он работает.

let items = [{
  "ID": "12345",
  "Name": "Real Person",
  "Description": "How a real person ought to be described",
  "Date": "2015-04-12T04:24:49-07:00",
  "Amount": 120.23
}]

const wrapper = shallowMount(DataTable, {
  propsData:  { items }
})

// toggle method directly on component
wrapper.vm.toggleSelect(items[0])

// verify that the array has been updated
console.log(DataTable.data().selectedItems)

В журнале показан пустой массив только в тесте.

1 Ответ

1 голос
/ 30 марта 2019

DataTable.data().selectedItems должно быть wrapper.vm.selectedItems.

Свойства данных экземпляра компонента также доступны в wrapper.vm, поэтому вы можете получить доступ к текущим данным экземпляра напрямую по ключу:

expect(wrapper.vm.selectedItems).toContain(items[0])

Edit Vue Template

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...