問題タブ [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.
javascript - AngularJS Jasmine 単体テスト: エラー: [$injector:unpr] 不明なプロバイダー: pServiceProvider <- pService
単純な角度コードでテストを行っていますが、次のエラーが発生しています。
エラー: [$injector:unpr] 不明なプロバイダー: pServiceProvider <- pService
詳細は次のとおりです。
ProdModule.JS
ProdController.js
ProdService.js
Test.JS
Service コードを ProdController.js に配置すると、完全に機能しますが、コードを各 js ファイルに分離すると、テストが中断されます。何が欠けているか分かりますか?
angularjs - 装飾された $log は、ngMock が原因で単体テストで失敗します
プロジェクトでは、メソッド .prefix() を公開する $log サービスを装飾しました。のように使います$log.prefix('Some Prefix text here')。
これは、$log in を使用するすべてのモジュールで正常に機能しますが、単体テストでは機能しません。
$log.prefix は関数ではありません
ngMock モジュールで $log を変更する必要があります。すべてのモジュールで $log.prefix を使用しているため、これらのモジュールのすべての単体テストを書き直す必要はありません。
質問: ngMock の $log メソッドをデコレートする方法はありますか?
angularjs - $controllerデコレータで一方向バインディングパラメータをモックする方法は?
起動ロジックで一方向のバインドされたパラメーターを定義する必要があるディレクティブのコントローラーのテストを作成しています。モックされたコントローラーに一方向のバインドされたパラメーターを渡すのに問題があります。テキストにバインドされたパラメーターは問題なく渡されます。
注: 次のコードでは、モジュール インジェクションおよびコードのその他の無関係な部分をスキップします。
以下は、2 種類のパラメーターを使用したディレクティブの定義です。
そして、ここにコントローラーがあります:
テストに関しては:
whiletextは $controller に適切に渡されますが、oneWay定義されておらず、テストは失敗します。また、オブジェクトを返す関数を無駄に渡そうとしました。このドキュメントでは、一方向のバインドされたパラメーターについては説明していません。ディレクティブをテストしてパラメーターをマークアップとして渡すことなく、これを行う方法を知っていますか? 一般的に、私はテストに焦点を合わせ、ディレクティブとそのコントローラーを別々にテストすることを好みます。
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 ファイルは、次の順序でスクリプトをロードします。
理解できません。ユーザーコントローラーの後にクライアントコントローラーがロードされます...それでも適切なモジュールを見つけることができませんか?
エラーが発生します:
この時点で私は非常に混乱し、イライラしています。どこが間違っているのかわかりません。
javascript - promise を返すモック ファクトリを使用した角度テスト コントローラー
この同じテスト内で使用できるように、Angular コントローラーをテストし、ファクトリをモックしようとしています。私はAngularのテストにかなり慣れていないので、その方法を理解するのに苦労しています。私の工場は、$q サービスではなく $http を使用せず、promise を返します。また、ファクトリの関数呼び出しがプロミスを返すことを考えると、モック ファクトリ内に何を配置すればよいかわかりません。
私の最終的な目標は、コントローラーからモック ファクトリを呼び出し、コントローラー内の 2 つの配列をチェックして、それらにデータを入力することになっているデータを確認することです。テスト容易性のためにテストを再構築するためのヒントがあれば、ぜひフィードバックをお寄せください。
角度コントローラー
アンギュラーファクトリー
テストファイル
angularjs - ngMock がファクトリを注入しない
私は過去 24 時間この問題に悩まされており、ここで私のコードの何が問題なのかわかりません。Angular からインジェクター エラーが発生しましたが、その理由がわかりません。これが私のコードです:
karma.conf.js ファイルを確認したところ、必要なすべてのファイルがテストに含まれています。同じモジュールに属する別のサービスがあり、' test ' の代わりに注入しようとすると、期待どおりに動作します。
これに関するヘルプは大歓迎です。