AngularJSのテストで_servicename_のアンダースコアは何を意味するのですか?
2023-10-20 14:11:25
質問
以下のテスト例では、オリジナルのプロバイダ名はAPIEndpointProviderですが、インジェクションやサービスのインスタンス化では、アンダースコアで包んでインジェクションしなければならない慣習になっているようです。なぜでしょうか?
'use strict';
describe('Provider: APIEndpointProvider', function () {
beforeEach(module('myApp.providers'));
var APIEndpointProvider;
beforeEach(inject(function(_APIEndpointProvider_) {
APIEndpointProvider = _APIEndpointProvider_;
}));
it('should do something', function () {
expect(!!APIEndpointProvider).toBe(true);
});
});
私が説明不足の規約は何でしょうか?
どのように解決するのですか?
アンダースコアは、サービスと同じ名前のローカル変数をローカルに割り当てることができるように、異なる名前でサービスを注入するために使用することができる便利なトリックです。
つまり、もしこれができなければ、ローカルでサービスのために何か別の名前を使わなければならないでしょう。
beforeEach(inject(function(APIEndpointProvider) {
AEP = APIEndpointProvider; // <-- we can't use the same name!
}));
it('should do something', function () {
expect(!!AEP).toBe(true); // <-- this is more confusing
});
は
$injector
はアンダースコアを取り除くだけで、私たちが望むモジュールを提供することができます。これは
は行いません。
をするのではなく、同じ名前を再利用できるようにするのです。
関連
-
[解決済み] X-Frame-Options'を'SAMEORIGIN'に設定しているため、フレーム内での表示を拒否された。
-
[解決済み] angularJSの::の意味するところ
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] AngularJSを使用して、ブラウザのコンソールで$scope変数にアクセスするにはどうすればよいですか?
-
[解決済み] クラスを条件付きで適用する場合の最適な方法は何ですか?
-
[解決済み] なぜAngularJSはselectに空のオプションを含めるのですか?
-
[解決済み] AngularJSのサービスをコンソールからテストするにはどうしたらいいですか?
-
[解決済み】AngularJSのディレクティブスコープにおける「@」と「=」の違いは何ですか?
-
[解決済み】AngularJSのスコーププロトタイピング/プロトタイピング継承のニュアンスとは?
-
[解決済み】ユニットテストについて語るときの「DAMP not DRY」の意味とは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】npm UNMET PEER DEPENDENCYの警告を修正するにはどうすればいいですか?
-
[解決済み] angularのpostリクエストでpreflightのレスポンスがHTTPステータスコード403で不正になる。
-
[解決済み] AngularJs ReferenceError: $http is not defined
-
[解決済み] AngularJSのディープリンクとは何ですか?
-
[解決済み] AngularJSで画像を表示する
-
[解決済み] AngularJS 。scope.apply()呼び出し時の$digest already in progressエラーを防ぐ。
-
angularでのng-repeatとtrack by
-
[解決済み] Angular JSによるシンプルなポップアップ
-
[解決済み] ng-modelとng-bindの違いは何ですか?
-
[解決済み] 子コントローラから親スコープにアクセスするAngularJS