I have an angular 6 application and I am trying to unit test a component where I inject the Router. In my ngOnInit method I reference this.router.url and work with it.
So now I am attempting to write a jasmine unit test and I cannot set the router.url property because it "is a constant ot read only property". I am currently mocking the router like this.
mockRouter = jasmine.createSpyObj<Router>("router", ["navigate", "navigateByUrl"]);
What else do I need to set to properly mock the url value in my test?
Jasmine spy on property should be reasonable solution
spyOnProperty(router, 'url', 'get').and.returnValue('/users');
as recommended here https://stackoverflow.com/a/43793575/11552394
and documented in Jasmine docs https://jasmine.github.io/api/3.4/global.html#spyOnProperty
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With