Actuellement, je suis en train d'implémenter un test unitaire pour mon projet et il y a un fichier qui contenait window.location.href
.
Je veux faire une simulation pour tester et voici mon exemple de code :
it("method A should work correctly", () => {
const url = "http://dummy.com";
Object.defineProperty(window.location, "href", {
value: url,
writable: true
});
const data = {
id: "123",
name: null
};
window.location.href = url;
wrapper.vm.methodA(data);
expect(window.location.href).toEqual(url);
});
Mais je reçois cette erreur :
TypeError: Cannot redefine property: href
at Function.defineProperty (<anonymous>)
J'ai essayé quelques solutions mais je ne l'ai pas résolu. J'ai besoin de quelques conseils pour m'aider à me sortir de ce mauvais pas. Aidez-moi, s'il vous plaît.
1 votes
Cette question a été traitée dans un autre fil de discussion Voici le lien vers la réponse
4 votes
Ce n'est pas exactement ce que vous recherchez mais
window.location.assign(url)
fait fonctionnellement la même chose, vous pouvez donc le simuler à la place en utilisant la fonctionjest.spyOn(window.location, 'assign').mockImplementation(() => {});