#javascript #vue.js #vuex #cypress
#javascript #vue.js #vuex #cypress
Вопрос:
viewItems
В моем хранилище Vuex вызывается получатель, возвращающий массив. Я могу получить к нему доступ из моего теста Cypress с помощью:
Cypress.Commands.add("getStore", () => {
return cy.window().its("app.$store");
});
cy.getStore().its("getters.viewItems.length").should("equal", 13);
Это работает, но я получаю сообщение об ошибке на консоли при запуске Cypress:
[Vue warn]: Property or method "nodeType" is not defined on the instance but referenced during render. Make sure that this property is reactive, either in the data option, or for class-based components, by initializing the property. See: https://v2.vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties
Есть ли лучший способ доступа к геттерам или это что-то другое?
Комментарии:
1. Не уверен, что это поможет, но разработчики нашего проекта создали
store.login
команду отправки и помогли мне разработать этот код.cy.window() .then(window => { cy.wrap( window.$nuxt.$store.dispatch('login', { email: user.email, password: user.password, }) ) })
Мы разрабатываем приложение VUE, и оно не выдает эту ошибку, хотя я уже видел ее в компиляторе раньше, и, возможно, это поможет вам2. Можете ли вы попробовать напрямую сравнить длину:
cy.getStore().its("getters.viewItems").should('have.length',13)
?3. @Otto Paulsen, без этого теста ошибка исчезает? мне кажется, что ошибка не в тесте.