J'essaie de tester une composante de base Vue qui fait référence à un magasin VUEX. Je pensais avoir suivi l'exemple de Vue ( https: //vue-test-utils.vuejs. org/guides/utilisation-with-veux.html # getters moqueurs ) à un t mais cela ne semble pas fonctionner.
Je reçois l'erreur qui est mentionnée dans le titre.
const localVue = createLocalVue()
localVue.use(Vuex)
describe('Navbar.vue', () => {
let store: any
let getters: any
beforeEach(() => {
getters: {
isLoggedIn: () => false
}
store = new Vuex.Store({
getters
})
})
it('renders props.title when passed', () => {
const title = 'Smart Filing'
const wrapper = shallowMount(Navbar, {
propsData: { title },
i18n,
store,
localVue,
stubs: ['router-link']
})
expect(wrapper.text()).to.include(title)
})
})
J'utilise des composants de classe afin que cela a peut-être quelque chose à voir avec cela?
@Component({
props: {
title: String
},
computed: mapGetters(['isLoggedIn'])
})
export default class Navbar extends mixins(Utils) {}
Merci d'avance.
Les "getters" ici ne sont pas correctement attribués:
beforeEach(() => {
getters: {
isLoggedIn: () => false
}
store = new Vuex.Store({
getters
})
})
Ça devrait être getters = {...
plutôt que getters: {...
Parce que votre argument à l'égard est une fonction et non un objet.
Je peux confirmer que c'est bien écrit correctement dans la documentation.
Bonne chance!