問題タブ [angular2-testing]

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 投票する
1 に答える
3584 参照

angular - Angular 2 - 依存関係のある angular-cli パイプ テスト

比較的孤立した のテストを実装しようとしていPipeます。私はangular-cli@angular2.0.0で)の最新バージョンを使用しています。

パイプコードは次のとおりです。

仕様コードは次のとおりです。

健全性テストはパスしますが、実際のテストは次のエラーで失敗します。

私が見逃した構成だと確信していますが、何らかの理由でDataTablePipeテストモジュールにインポートされていません...

何か案は?

0 投票する
1 に答える
3058 参照

angular - Angular2 - 注入されたプライベート サービス メソッドが呼び出されたことをテストする

まず、プライベート メソッドをテストするべきではないことは理解していますが、プライベート メソッドが何らかのロジックに基づいて呼び出されたかどうかをテストする必要がある場合があると感じています。

すべての http リクエストにコードを書き込むことなくグローバル エラー処理を実行できるように、angular 2 http サービスのラッパー サービスを構築しています。

クラスの小さなサンプルは次のようになります。

get メソッドをテストし、Error 応答でモック応答をテストして、catch が発生するようにしたい場合、これはプライベートであるため、error.dispatch メソッドが呼び出されたかどうかをテストできません。プライベート メソッドをスパイできません。

「キャッチ」が起動されていることをテストしているだけであり、明らかにその内部のメソッドが起動する場合は、http サービス自体をテストしているだけだと主張することもできます。「catch」が発生した場合は error.dispatch が呼び出しとして追加され、何らかの理由で別の開発者によって削除された場合は失敗することを確認したい。多分これはそれをテストする悪い方法ですか?私は他の提案を受け入れます。

次のようにプライベート クラスをモックできます。

しかし、ApiService クラスの設計図は同じままであり、現在の FakeError サービスはまだ非公開です。Java では、自分でインスタンスを作成し、それを注入できます。それを所有しているため、アクセスできます。私はjasmine/typescript/angular2でそれを行う方法を見つけようとしていると思います??

0 投票する
3 に答える
27437 参照

javascript - Angular 2 最終リリース ルーター単体テスト

Angular バージョン 2.0.0 でカルマとジャスミンを使用してルーターを単体テストするにはどうすればよいですか?

バージョン 2.0.0-beta.14 での古い単体テストは次のようになります。

0 投票する
1 に答える
1576 参照

unit-testing - TypeError: Angular 2.0 final にアップグレードした後、null のプロパティ 'injector' を読み取ることができません

Angular 2 RC5 から 2.0 Final にアップグレードした後、テストを実行すると次のエラーが表示されます。何が問題なのかわかりません。

これが私のテストの1つの例です:

この問題を示すプル リクエストについては、GitHub を参照してください: https://github.com/mraible/ng2-demo/pull/4

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

unit-testing - beforeEach の代わりに beforeAll を使用すると、Angular 2 CLI Jasmine 単体テストが失敗する

NG-CLI (beta.15) で新しいプロジェクトを作成し、を変更して をapp.component.specに変更したところ、次のエラーでテストが失敗しました。beforeEachbeforeAll

失敗: テスト モジュールにインポートされていないため、コンポーネント AppComponent を作成できません!

このエラーが何を意味するのか、もちろんそもそもなぜエラーが発生するのかわかりません。

変更された仕様は次のとおりです。

次に、仕様をこれに変更すると、最初の 2 つのテストは成功し、3 つ目のテストは失敗して次のメッセージが表示されます。

失敗しました: 破棄されたビューを使用しようとしました: detectChanges

なぜ失敗があるのか​​ わかりません。

0 投票する
1 に答える
5203 参照

angular - テスト目的で angular2 platform-b​​rowser Title コンポーネントをモックする方法

Jasmine を使用して Angular 2 コンポーネントの単体テストを作成しています。コンポーネントがインスタンス化されたときに、ドキュメントのタイトルが特定の値に設定されているかどうかをテストしたいと考えています。

これが私のコンポーネントです

ここに私がテスト用に書いたものがありますが、機能していません。titleService.getTitle()Karma デバッグ ランナー ページのタイトルを教えてくれます。

カルマ出力は次のとおりです。

エラー: 'Karma DEBUG RUNNER' は 'Account' である必要があります。

0 投票する
1 に答える
1171 参照

angular - angular2-materialコンポーネントを使用してangular2.0でngテストを実行するとテストケースが失敗する

アプリケーションで angular2.0 を使用しています

angular2-material コンポーネントをインストールし、必要なモジュールにインポートしました

コンポーネントの 1 つのテスト ケースを作成してみました

//about.component.html

//about.component.ts

//about.component.spec.ts

//package.json

すると、次のようng testになります。

この問題を解決する方法はありますか?