Şu anda, ana bilgisayar bileşeninden bir girdi kabul eden ve aşağıdaki kod gibi ngOnInit yaşam döngüsü kancasında kullanılan bir alt bileşeni test etmeye çalışıyorum. Köşeli 2 - ngOnInit yaşam döngüsü kancasında kullanılan bir girişle test etme
@Component({
selector: 'my-child-component',
template: '<div></div>'
})
class ChildComponent implements OnInit {
@Input() myValue: MyObject;
transformedValue: SomeOtherObject;
ngOnInit():void {
// Do some data transform requiring myValue
transformedValue = ...;
}
}
@Component({
template:`<my-child-component [myValue]="someValue"></my-child-component>`
})
class HostComponent {
someValue: MyObject = new MyObject(); // how it is initialized it is not important.
}
Nasıl
ChildComponent MyValue iddiasına ilişkin ChildComponent.transformedValue erişmesini mümkün olurken oluşturulması sırasında mevcut olması gerekir, bu durumda test edilmelidir.Ben ngOnInit zaten ben de oluşturma çalıştı
fixture.componentInstance.myValue = someValue;
diyoruz noktaya kadar denilen olurdu ancak bu
componentFixture = testBed.createComponent(LoginFormComponent)
gibi Açısal TestBed sınıfını kullanarak ChildComponent oluşturma çalıştı HostComponent bir fikstür ve bu çalışırken, ChildComponent.transformedValue alanında iddiaları gerçekleştirmek için gerekli olan ChildComponent örneğine erişim elde sıkışmış.
Yardımı büyük beğeni topluyor!
Çok teşekkürler!
o' ngOnChanges' yaşam döngüsünü tetikler: http: //stackoverflow.com/questions/37408801/testing-ngonchanges-lifecycle- hook-in-angular-2 – echonax
Cevabınız için teşekkürler! Aslında verilen cevap, test bileşeninden çocuk bileşenine nasıl erişebildiğimle ilgili olarak aşağıda anlattığım cevap gibidir. Paylaştığınız için teşekkürler! :) –