<ul>
  <router-link to="/" tag="li" active-class="active" exact><a >Home</a></router-link>
  <router-link to="/contact" tag="li" exact><a>contact</a></router-link>
  <router-link to="/other" tag="li" exact><a>other</a></router-link>
<ul/>

Test.spec.js (j'essaie de déclencher l'événement click et de vérifier que l'autre composant est chargé ou non)

await wrapper.findAll('a').at(2).trigger('click')
await wrapper.vm.$nextTick()
expect(wrapper.contains('This is other Page')).toBe(true)

Mais le test échoue

0
Darshan Namdar 7 oct. 2020 à 13:01

1 réponse

Meilleure réponse

Vous n'avez pas besoin de faire de test sur le lien du routeur, le comportement de celui-ci ne vous en soucie pas, car ; le comportement dont vous avez besoin est seulement de savoir que le est rendu. Pas plus. tu peux faire des tests comme ça

 const wrapper: any = shallowMount(YourComponent, {
    stubs: ['router-link', 'router-view']
  });

expect(wrapper.html()).toContain('to="/contact"');

Une autre chose que vous pouvez faire est de vérifier que le prop "to" a reçu exactement la chaîne "/contact"

Pour moi, c'est assez .toContain(...)

PD : désolé pour mon anglais.

0
Kevin Mendez 8 oct. 2020 à 03:50