問題タブ [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.

0 投票する
2 に答える
11416 参照

unit-testing - Angular 2 TestBed とモック

別のサービスを使用するコンポーネントをテストしようとしています。そして、サービスのモックを提供してコンポーネントを分離したいと考えています。addprovidersRC5 より前は、非推奨になり、次の RC で削除されるものを簡単に使用できます。代わりに、を使用する必要がありTestBedます。何らかの理由でモック angular を提供すると、モックが依存するサービスを探し続けます。を投げますDI exception。すべての依存関係を提供すると、テストは機能しますが、テスト スイートごとに繰り返したくありません。そして、これは基本的なオブジェクト指向の原則を破ります。私のテストスイート:

角度 2.0.0-RC5

0 投票する
2 に答える
10068 参照

angular - TestBed でコンポーネントをオーバーライドする

としてMainComponent使用しています。のメソッドを呼び出しています。ChildComponentA@ViewChildMainComponentChildComponentA

ユニットテストケースのモックを書きたいですChildComponentATestBed(Angular 2 RC5で)を使用してこれを行うにはどうすればよいですか?

使用する前にoverrideDirective(MainComponentName, ChildComponentA, MockChildComponentA);これを使用するのと同等のものはありTestBedますか?

使ってみた

テンプレートを設定するだけですが、コンポーネントのメソッドもモックしたいと思います。

0 投票する
0 に答える
278 参照

unit-testing - 非同期サービスを持つコンポーネントの TestBed を使用した Angular2 の単体テスト

Angular 2.1.0 を使用しています。

私は非常に単純な非同期サービスを持っています:

emit()非同期動作をエミュレートします。そしてそれを使用するクラス:

サービスとコンポーネントの単体テストを作成したいと考えています。angular.io チュートリアルは既に読みました。そして、追加の説明が必要です:(

コンポーネントをテストするために、次のことを行います。

  1. 最初にdiv.cがないことをテストします
  2. ティック
  3. div.c content = 'Value 1' を確認してください
  4. ティック
  5. check div.c content = 'Super Value 2'

それとも、2 と 3 が 2 倍になっているので、4 と 5 を指す必要はないのでしょうか。

非同期サービスを使用してコンポーネントをテストするには、スタブ サービスを使用するか、実際のサービスを使用して重要な機能をスパイするかの 2 つのオプションがあることを知っています。私の場合、両方のシナリオのテストをどのように作成すればよいですか?

そして、サービスをテストする方法は?テスト結果が出るまで 20 秒も待たされたくありません。

0 投票する
0 に答える
87 参照

unit-testing - Angular 2 (ベータ版ではなく最終版) 単体テスト (注入、TestBed) - サービス コンストラクター (サービス単体テスト) で呼び出された関数をスパイするにはどうすればよいですか?

サービスを TestBed に注入しました。これは、コンストラクター メソッドが制御外で呼び出されることを意味します。では、どこに/どのようにスパイを設定しますか?