Supposons que je classe Foo
qui fournit des services injectés de dépendance à toutes ses classes dérivées, comme tel:Unité test d'une classe parente qui utilise Injector avec routeur (et d'autres services)
export class Foo {
protected fb : FormBuilder;
protected router : Router;
protected otherService : OtherService;
protected anotherService : AnotherService;
constructor(injector : Injector) {
this.fb = injector.get(FormBuilder);
this.router = injector.get(Router);
this.otherService = injector.get(OtherService);
this.anotherService = injector.get(AnotherService);
}
qui a des classes dérivées de celui-ci en tant que tel:
export class Bar extends Foo {
constructor(injector : Injector){
super(injector);
}
}
Comment puis-je tester correctement l'unité de la classe parente, sans courir dans:
Error: Can't resolve all parameters for Foo: (?)
A la minute où je l'ai (avoir essayé beaucoup, beaucoup choses différentes pour le faire fonctionner, mais à défaut :()
export function main() {
describe('Class: Foo',() => {
beforeEach(async(() => {
TestBed.configureTestingModule({
providers: [
Foo,
Injector,
OtherService,
AnotherService
]
});
}));
it('should compile', inject([Foo, Injector], (foo: Foo, injector : Injector) => {
console.log("INJECTOR", injector);
expect(foo).toBeTruthy();
}));
});
}
J'ai aussi essayé d'utiliser ReflectiveInjector.resolveAndCreate
comme tel:
{
provide : Injector,
useValue: ReflectiveInjector.resolveAndCreate([FormBuilder, Router, OtherService, AnotherService])
}
Mais toujours pas de dés :(Des idées?
'Injector: injector' est-il typo? Je suppose que vous voulez écrire 'injector: Injector' – yurzui
Ouais, c'était une faute de frappe .... mis à jour :) – Nunicorn