I\'m trying to unit test a (angular 2) component with routerLink
and routerLinkActive
but all test cases fail with following error message. (
I have managed to solve this issue. I'll list what changes I made to solve the issue.
As I mentioned in the comments, routerLink
works only on real router. So we need to include RouterTestingModule (include .withRoutes([{path: 'some/path',component: someComponent}])
if you plan to click on it while testing).
We need not provide Router dependencies separately if we have added RouterTestingModule
already. So I removed both Router
and ActivatedRoute
dependency that I provided. Now, the error changed from Cannot read property 'subscribe' of undefined
to Cannot read property 'outlets' of null
.
I found out this error occurs when the routerLink
is pointing to a null variable. In my case, the property called favoriteUrl
that i assigned to routerLink
was null because of the isolated testing environment. So I manually assigned a value to the property in beforeEach
function and that solved the problem, atleast for me.
Thanks to everyone who tried to help! :-)
https://stackoverflow.com/a/45916133/8558515
https://stackoverflow.com/a/42039920/8558515