問題タブ [testbed]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unit-testing - Angular 2 TestBed とモック
別のサービスを使用するコンポーネントをテストしようとしています。そして、サービスのモックを提供してコンポーネントを分離したいと考えています。addproviders
RC5 より前は、非推奨になり、次の RC で削除されるものを簡単に使用できます。代わりに、を使用する必要がありTestBed
ます。何らかの理由でモック angular を提供すると、モックが依存するサービスを探し続けます。を投げますDI exception
。すべての依存関係を提供すると、テストは機能しますが、テスト スイートごとに繰り返したくありません。そして、これは基本的なオブジェクト指向の原則を破ります。私のテストスイート:
角度 2.0.0-RC5
angular - TestBed でコンポーネントをオーバーライドする
としてMainComponent
使用しています。のメソッドを呼び出しています。ChildComponentA
@ViewChild
MainComponent
ChildComponentA
ユニットテストケースのモックを書きたいですChildComponentA
。TestBed
(Angular 2 RC5で)を使用してこれを行うにはどうすればよいですか?
使用する前にoverrideDirective(MainComponentName, ChildComponentA, MockChildComponentA);
これを使用するのと同等のものはありTestBed
ますか?
使ってみた
テンプレートを設定するだけですが、コンポーネントのメソッドもモックしたいと思います。
unit-testing - 非同期サービスを持つコンポーネントの TestBed を使用した Angular2 の単体テスト
Angular 2.1.0 を使用しています。
私は非常に単純な非同期サービスを持っています:
emit()
非同期動作をエミュレートします。そしてそれを使用するクラス:
サービスとコンポーネントの単体テストを作成したいと考えています。angular.io チュートリアルは既に読みました。そして、追加の説明が必要です:(
コンポーネントをテストするために、次のことを行います。
- 最初にdiv.cがないことをテストします
- ティック
- div.c content = 'Value 1' を確認してください
- ティック
- check div.c content = 'Super Value 2'
それとも、2 と 3 が 2 倍になっているので、4 と 5 を指す必要はないのでしょうか。
非同期サービスを使用してコンポーネントをテストするには、スタブ サービスを使用するか、実際のサービスを使用して重要な機能をスパイするかの 2 つのオプションがあることを知っています。私の場合、両方のシナリオのテストをどのように作成すればよいですか?
そして、サービスをテストする方法は?テスト結果が出るまで 20 秒も待たされたくありません。
unit-testing - Angular 2 (ベータ版ではなく最終版) 単体テスト (注入、TestBed) - サービス コンストラクター (サービス単体テスト) で呼び出された関数をスパイするにはどうすればよいですか?
サービスを TestBed に注入しました。これは、コンストラクター メソッドが制御外で呼び出されることを意味します。では、どこに/どのようにスパイを設定しますか?