Angular 4 - Failed: Can't resolve all parameters for ActivatedRoute: (?, ?, ?, ?, ?, ?, ?, ?) Angular 4 - Failed: Can't resolve all parameters for ActivatedRoute: (?, ?, ?, ?, ?, ?, ?, ?) angular angular

Angular 4 - Failed: Can't resolve all parameters for ActivatedRoute: (?, ?, ?, ?, ?, ?, ?, ?)


You want to inject a fake ActivatedRoute to your component, since you create it yourself in the test, and the router thus doesn't create it for you and inject an ActivatedRoute. So you can use something like this:

describe('SomeComponent', () => {  const fakeActivatedRoute = {    snapshot: { data: { ... } }  } as ActivatedRoute;  beforeEach(async(() => {    TestBed.configureTestingModule({       imports: [ RouterTestingModule ],      declarations: [ SomeComponent ],      providers: [ {provide: ActivatedRoute, useValue: fakeActivatedRoute} ],    })    .compileComponents();  }));});


Here's a solution for angular 7

{    provide: ActivatedRoute,    useValue: {        snapshot: {            paramMap: {                get(): string {                    return '123';                },            },        },    },},


{  provide: ActivatedRoute,  useValue: {    snapshot: {      queryParamMap: {        get(): number {          return 6;        }      }    }  }}