Wireine Komponente in TestBed.overrideComponent definiert modifizierende
verwendenTestBed.overrideComponent(CoolComponent, {
set: {
template: '<div id="fake-component">i am the fake component</div>',
selector: 'our-cool-component',
inputs: [ 'model' ]
}
})
, um eine Komponente außer Kraft setzen.
Die Komponente hat eine ViewChild die wir
@Component({
selector: 'our-cool-component',
templateUrl: 'cool.component.html'
})
export class CoolComponent implements OnInit, OnDestroy {
@Input() model: SomeModel
@ViewChild(CoolChildComponent) coolChildComponent;
ngOnInit() {
this.coolChildComponent.doStuff();
}
}
Die CoolComponent
wiederum in unserer ngOnInit Methode konfigurieren in einer Wrapper
Komponente lebt.
Wenn wir fixture.detectChanges()
auf der Wrapper
Befestigung nennen, versucht dies die CoolComponent zu konstruieren, aber es stirbt sofort, wenn es doStuff() aufruft, weil CoolChildComponent
nicht definiert ist.
Gibt es eine Möglichkeit, an der CoolComponent
zu stub seine CoolChildComponent
zu bekommen? Es scheint nicht so, als könnten wir es von der Wrapper
ableiten, da es nur durch die Vorlage referenziert wird, nicht als eine Eigenschaft der Komponente.
habe ich nur noch eine Prämie, offenbar sind Sie nicht informiert (http://meta.stackoverflow.com/q/333838/3001761) – jonrsharpe
Hat dies jemals gearbeitet? Funktioniert es, wenn Sie es im Browser (oder was auch immer Sie anvisieren) ausführen? Ist das ein Test-Problem? – j2L4e