2017-03-03 11 views
1

私はAngular2から始めていますが、私が書くすべてのコンポーネントをテストしようとしています。推移的な依存性を持つAngular2コンポーネントのテスト

コンポーネントテストを書くときには、TestBedを初期化して、テストするコンポーネントのすべての(推移的な)依存関係を解決する必要があります。

今私はテスト中のコンポーネントを含む3つのアプローチ

  1. インポートモジュール全体を考えることができます - それは明示的にモックすべて
  2. テストコード内のすべての依存関係を宣言
  3. すべての必要な依存関係を宣言するか、インポートする必要があります依存関係 - それで彼らはそれ自身の依存関係を持っていません。

私が最初に気づいたことは、 yはメインモジュールで宣言されています。 2つ目は、コンポーネントに新しい依存関係を追加しようとすると、すべての依存テストを手動で変更する必要があります。私はそれが実行可能かどうかわからないので、私は3番目をテストしなかった。

これを処理する最善の方法は何ですか?

答えて

0

私は、依存性コンポーネントのモックを、同じセレクタと入力を元に、ロジックなしで実装しました。

このようにして、コンポーネントを個別にテストすることができます。従属コンポーネントを正しく使用していますが、過渡的な依存関係やその他の実装の詳細は考慮しません。

私が触発された:これはあなただけのクラスの実装自体を交換しないタグをからかっているので、それには限界がたくさんありつの有効なアプローチですがangular2 test, how do I mock sub component

+0

。このようなものは動作しません。 '@ViewChild(SubComponent)sc; sc.callFn() 'を呼び出します。テストベッドインジェクタは、模擬実装が異なるクラス名を持つので、このクラスを見つけることはありません。 – Julian

関連する問題