Dans mon composant, j'ai une méthode qui exécutera une router.Push()
import router from "@/router";
// ...
export default {
// ...
methods: {
closeAlert: function() {
if (this.msgTypeContactForm == "success") {
router.Push("/home");
} else {
return;
}
},
// ....
}
}
Je veux le tester ...
J'ai écrit les spécifications suivantes ..
it("should ... go to home page", async () => {
// given
const $route = {
name: "home"
},
options = {
...
mocks: {
$route
}
};
wrapper = mount(ContactForm, options);
const closeBtn = wrapper.find(".v-alert__dismissible");
closeBtn.trigger("click");
await wrapper.vm.$nextTick();
expect(alert.attributes().style).toBe("display: none;")
// router path '/home' to be called ?
});
1 - Je reçois une erreur
console.error node_modules/@vue/test-utils/dist/vue-test-utils.js:15
[vue-test-utils]: could not overwrite property $route, this is usually caused by a plugin that has added the property asa read-only value
2 - Comment dois-je écrire le expect () pour être sûr que cet itinéraire/home a été appelé
merci pour vos commentaires
En supposant que vous avez correctement configuré les pré-requis et similaire à this
Utilisez simplement
it("should ... go to home page", async () => {
const $route = {
name: "home"
}
...
// router path '/home' to be called ?
expect(wrapper.vm.$route.name).toBe($route.name)
});