問題タブ [ngmock]

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

javascript - AngularJS Jasmine 単体テスト: エラー: [$injector:unpr] 不明なプロバイダー: pServiceProvider <- pService

単純な角度コードでテストを行っていますが、次のエラーが発生しています。

エラー: [$injector:unpr] 不明なプロバイダー: pServiceProvider <- pService

詳細は次のとおりです。

ProdModule.JS

ProdController.js

ProdService.js

Test.JS

Service コードを ProdController.js に配置すると、完全に機能しますが、コードを各 js ファイルに分離すると、テストが中断されます。何が欠けているか分かりますか?

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

angularjs - 装飾された $log は、ngMock が原因で単体テストで失敗します

プロジェクトでは、メソッド .prefix() を公開する $log サービスを装飾しました。のように使います$log.prefix('Some Prefix text here')

これは、$log in を使用するすべてのモジュールで正常に機能しますが、単体テストでは機能しません。

$log.prefix は関数ではありません

ngMock モジュールで $log を変更する必要があります。すべてのモジュールで $log.prefix を使用しているため、これらのモジュールのすべての単体テストを書き直す必要はありません。

質問: ngMock の $log メソッドをデコレートする方法はありますか?

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

angularjs - $controllerデコレータで一方向バインディングパラメータをモックする方法は?

起動ロジックで一方向のバインドされたパラメーターを定義する必要があるディレクティブのコントローラーのテストを作成しています。モックされたコントローラーに一方向のバインドされたパラメーターを渡すのに問題があります。テキストにバインドされたパラメーターは問題なく渡されます。

注: 次のコードでは、モジュール インジェクションおよびコードのその他の無関係な部分をスキップします。

以下は、2 種類のパラメーターを使用したディレクティブの定義です。

そして、ここにコントローラーがあります:

テストに関しては:

whiletextは $controller に適切に渡されますが、oneWay定義されておらず、テストは失敗します。また、オブジェクトを返す関数を無駄に渡そうとしました。このドキュメントでは、一方向のバインドされたパラメーターについては説明していません。ディレクティブをテストしてパラメーターをマークアップとして渡すことなく、これを行う方法を知っていますか? 一般的に、私はテストに焦点を合わせ、ディレクティブとそのコントローラーを別々にテストすることを好みます。

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

javascript - Angular アプリはうまく機能しますが、ngMock はモジュールを適切にロードしません

アプリをデプロイしてブラウザで実行すると、アプリは正常に動作します

すべてのコントローラー/サービスに正常に到達できます。それらはサブモジュールを介してリンクされていました。

サブモジュールを使用して、ui-router の状態/ルートをより適切に整理しました。(以前は、app dot js ファイルにすべての状態がありました。50 ほどありました。現在は、より小さなモジュールに編成されています)。

app.js [モジュールファイル]

components.js [モジュールファイル、ステート/ルートを含む]

user.js [モジュール ファイル、ステート/ルートを含む]

user-controller.js // LOADS は問題ありません。コントローラーです。

client-controller.js // ロードされませ! 「phpApp.components」モジュールが見つかりません...

私の index.html ファイルは、次の順序でスクリプトをロードします。

理解できません。ユーザーコントローラーの後にクライアントコントローラーがロードされます...それでも適切なモジュールを見つけることができませんか?

エラーが発生します:

この時点で私は非常に混乱し、イライラしています。どこが間違っているのかわかりません。

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

javascript - promise を返すモック ファクトリを使用した角度テスト コントローラー

この同じテスト内で使用できるように、Angular コントローラーをテストし、ファクトリをモックしようとしています。私はAngularのテストにかなり慣れていないので、その方法を理解するのに苦労しています。私の工場は、$q サービスではなく $http を使用せず、promise を返します。また、ファクトリの関数呼び出しがプロミスを返すことを考えると、モック ファクトリ内に何を配置すればよいかわかりません。

私の最終的な目標は、コントローラーからモック ファクトリを呼び出し、コントローラー内の 2 つの配列をチェックして、それらにデータを入力することになっているデータを確認することです。テスト容易性のためにテストを再構築するためのヒントがあれば、ぜひフィードバックをお寄せください。

角度コントローラー

アンギュラーファクトリー

テストファイル

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

angularjs - ngMock がファクトリを注入しない

私は過去 24 時間この問題に悩まされており、ここで私のコードの何が問題なのかわかりません。Angular からインジェクター エラーが発生しましたが、その理由がわかりません。これが私のコードです:

karma.conf.js ファイルを確認したところ、必要なすべてのファイルがテストに含まれています。同じモジュールに属する別のサービスがあり、' test ' の代わりに注入しようとすると、期待どおりに動作します。

これに関するヘルプは大歓迎です。