現在、ホストコンポーネントからの入力を受け付け、以下のコードのようなngOnInitライフサイクルフック内で使用される子コンポーネントをテストしようとしています。 ChildComponentがmyValueは、アサーションのためChildComponent.transformedValueへのアクセス権を持つことが可能でありながら、作成時に存在する必要があり、この場合にテストする必要がありますどのように角2 - ngOnInitライフサイクルフックで使用される@inputを使用してコンポーネントをテストする
@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.
}
。
私はngOnInitはすでに、私はまた、作成しようとした
fixture.componentInstance.myValue = someValue;
を呼び出す時点まで呼ばれていたであろうが、この
componentFixture = testBed.createComponent(LoginFormComponent)
のような角度テストベッドのクラスを使用してChildComponentを作成してみました私がChildComponent.transformedValueフィールドでアサーションを実行するために必要な、作成されたChildComponentインスタンスへのアクセスを取得するのに苦労しました。
お願いします。
ありがとうございます!
それは' ngOnChanges'のライフサイクルをトリガしますます。http://stackoverflow.com/questions/37408801/testing-ngonchanges-lifecycle-フックイン角度2 – echonax
返信いただきありがとうございます!実際、答えは、テストコンポーネントから子コンポーネントへのアクセスをどのように管理したかについて、以下に投稿した答えとまったく同じです。共有してくれてありがとう! :) –