問題タブ [angular-mock]
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.
angularjs - 場所が変更され、コントローラーがロードされているかどうかを確認する方法
POST を実行してからページを変更するコントローラーの単体テストを作成しようとしています。パスがロードされ、そのパスのコントローラがロードされているかどうかを確認するにはどうすればよいですか?
karma-runner - browserify/karma/angular.js "TypeError: 2 番目のテストで "angular.mock.inject" を使用すると、"currentSpec" が null の場合、"TypeError: プロパティ '$injector' を読み取れません" が発生する
私は Angular.js アプリを持っており、Browserify でそれを使用して実験しています。アプリは動作しますが、テストも実行したいです。カルマで実行する 2 つのジャスミン テストがあります。私は browserify を使用して、angular.js と angular-mocks.js およびテスト内の他のテスト フィクスチャにアクセスできるようにしています。
バージョンは次のとおりです。
テストを個別に実行すると (karma.conf ファイルのどちらか一方にコメントを付けて)、両方とも問題なく動作します。(ええ!)
しかし、両方を実行すると、このエラーが発生します
angular.mocks.js の 2271 行を見ると、
したがって、明らかに currentSpec はどういうわけか null になりました。
2 番目のテストで「angular.mock.inject」を呼び出したときに問題を切り分けました。
これをコメントアウトすると機能しますが、明らかに、gridUtilService でテストを実行することはできません。
karma と browserify を使用して 2 つ (またはそれ以上 :-) の angular-mock jasmine テストを実行する方法を知っている人はいますか?
以下は私のテスト、karma.conf ファイルです。Angular サービスはデプロイ時に機能しますが、この目的のためには、何もしない単純なサービスにすることができます。
カルマ.conf:-
src/test/services/SettingUtilServiceTest.js:
src/test/services/GridUtilServiceTest.js:
angular セットアップへのアクセスが必要な場合は、それを提供できます (browserify の require() 関数を使用して複数のファイルに分割し、gulp でビルドします... しかし、私が言うように、アプリは正常に実行され、テストは 2 つのテストがある場合にのみ失敗します。問題は、karma-jasmine と angular-mocks、またはcurrentSpec
変数の上書きにあると思います。
エラーメッセージなしで角度テストを複数のテストに分割する方法を誰かが知っている場合(モノリシックな角度テストは必要ありません)、すべての助けをいただければ幸いです。ありがとう。
javascript - AngularJS : $httpBackend は一部のリクエストのみをモックします
ngMock モジュールを使用して、次のようないくつかのリクエストをモックします。
ただし、モジュールをロードすると、すべてのリクエストをモックすることが期待されるようです。したがって、モックした以外のリクエストを行うと、「予期しないリクエスト」エラーが発生します。
明示的にモックするリクエストのみを傍受し、他のすべてを通過させるように構成するにはどうすればよいですか?
regex - AngularJS : 特定の URL パターンのリクエストを通過する $httpBackend 正規表現パターン
私はngMockE2E
自分のサービスのいくつかを嘲笑するために使用しています。リクエストにあるすべてのリクエストを通過したい/app
。
この条件を正規表現で指定するにはどうすればよいですか? たとえば、app/assets/server/a.json
この URL はモックされるべきではなく、パススルーする必要があります。次のコードを試しましたが、うまくいきませんでした。
$httpBackend.whenGET('/app/').pass through();
angularjs - 構成を使用して URL を作成するときに HTTP 呼び出しをテストするにはどうすればよいですか?
私のプロジェクトでは、次のようにいくつかの HTTP リクエストを作成します。
つまり、最終的な HTTP 呼び出しは次のようになります。my/service?foo=bar&hello=worldVar
$httpBackend
これを考慮して設定するにはどうすればよいですか?
私が見る問題は次のとおりです。
- このスタイルでは、パラメーターの順序が保証されていません。つまり、最初のパラメーターを設定するの
expectGet
が難しくなります。 - パラメータを本当に気にしない場合、呼び出しをテストするのは難しい
angularjs - Angular Services で依存関係をモックする適切な方法は何ですか?
セットアップ: Karma、Browserify、Jasmine、Angular。
私は Angular サービスをテストしようとしていますが、それは今度は別のサービスを使用します。
ここで、モック インジェクションが行われる前に作成された ItemLocalStorageService の別のインスタンスを取得しているように感じます。
ItemLocalStorageService.js
ItemLocalStorageServiceTest.js
どちらの期待も失敗します。の出力getAll
は、私が提供するモック出力ではなく、ブラウザーのローカル ストレージの実際のコンテンツです。私は明らかに何か間違ったことをしているので、私を正しい方向に導くための指針を喜んで受け入れます.