Un grand merci pour votre visite !
Obtenez le guide ultime pour bien débuter en programmation !

- Choisissez la meilleure approche pour apprendre à coder
- Découvrez comment rester motivée
- Une astuce unique pour devenir un-e meilleur-e développeur-euse
Vous êtes en train de tester votre composant, qui utilise des Router et des ActivatedRoute, et paf, vous tombez sur l’erreur : Cannot read property ‘root’ of undefined.
Des heures plus tard, impossible de trouver une solution à votre problème. Comment faire ?
Bon, malgré les schemas: [ NO_ERRORS_SCHEMA ] ou autre astuce un peu uggly, rien n’y fait, vous avez toujours l’erreur.
Avant de vous pendre et maudir Angular toute votre vie … cherchons à isoler le problème.
Votre composant doit ressembler de près (ou de loin ) à celui-ci, non ?
Quand on fait des recherches sur le net au sujet de l’erreur, on tombe toujours sur la notion de Route, de Router.
OK, et vous devez avoir une erreur de ce type sur votre page Karma, non ?
Alors si c’est à propos des routes, ou des router, enlevons tout d’abord tout ce qui est au sujet des Routes.
Vous obtenez alors un Composant comme ceci :
Et là, vous relancez vos tests, et …. oh, ben plus d’erreurs
OK, on est sur la bonne voie.
On va juste commenter private _router: Router. Résultat ? Toujours l’erreur
On fait la même chose, avec private _route: ActivatedRoute (en réactivant la ligne d’au-dessus). Et là … le problème n’est plus là !
Le problème vient donc assurément d’Angular qui n’arrive pas à récupérer une route active, car nous sommes dans un environnement de test.
Pour corriger le problème et garder notre composant qui utilise Router et ActivatedRoute, c’est de : créer une class MockActivatedRoute qui va simuler le comportement.
Le point à noter ici, nous utilisons la classe RxJs : BehaviorSubject, qui permet d’émettre un contenu, dès qu’on s’y est inscrit.
Tout d’abord, créons l’instance, dans notre fichier Jasmine :
Nous utilisons ici la force d’injection de dépendance d’Angular et de Jasmine
(normalement, ça se recharge tout seul hein)
Mission accomplie !!
A plus, le problème !
Votre guide GRATUIT pour bien débuter la programmation !
Tout ce qu'il faut pour bien démarrer ! 🙂
Un grand merci pour votre visite !
Obtenez le guide ultime pour bien débuter en programmation !
Inscrivez-vous pour obtenir votre guide !
GRATUIT - Ta newsletter - Inscris-toi vite ! Des astuces, des nouveautés, rien que pour toi !