問題タブ [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.
javascript - Angular モックを使用してバックエンドレス開発用の JSON ファイルをロードする
この小さなコードは、フロントエンド バックエンドレス環境用に別の .js ファイルに記述しました。myfile.json
ajaxの呼び出しがあるたびに取得する必要があり/somelink
ます。
ただし、このコードは機能せず、エラーが発生しました:
誰かがこれを修正するのを手伝ってくれますか?
コード内の .json ファイルを取得するために $http を直接呼び出したくないことに注意してください。これを行う目的は、このコードをバックエンドレス開発用に個別に保持することです。
ありがとう。
更新 1:
追加した:
以前と同じエラーに加えて、別のエラーが発生しました。Uncaught Error: No pending request to flush !
更新 2:
遊んだ後、小さなハックを見つけました。.run()
これを他のすべての $httpBackend モックの前に置きます。また、この.js
ファイルは、すべてのコントローラー/サービス/ディレクティブの前で、app.js ブートストラップの後に配置する必要があります。
次に、これ:
重要なのはasync: false
、JSON が variable に確実に読み込まれるようにすることですdata
。これらはすべて、他のオブジェクトがトリガーされて ajax イベントを呼び出す前に発生する必要があります。これは、フロントエンド バックエンドレス開発専用のハックです。運用時には、もちろんこの .js ファイルは削除されます。私はこれがあまり好きではありasync: false
ませ$.ajax()
ん$http
angularjs - angular mock `module` の結果、「[Object object] は関数ではありません」
Teaspoon で実行されている Jasmine を使用して、Angular で単体テストを作成しようとしています。テストは実行されていますが、失敗しているコントローラーの存在をテストするためだけの簡単なテストがあります。次のテスト設定があります。
require ステートメントは、依存関係を処理する Browserify によって処理されますが、spec ヘルパーに使用しているスプロケットにフックすることもできます。
必要なアプリの中で、私は持っています
このテストを実行すると、次のエラーが発生します
これを理解しようとかなりの時間を費やしましたが、何が起こっているのかわかりません。どんな助けでも感謝します。
angularjs - AngularJS、ngMock のようなモック依存性注入を抽出する方法
ユーザーが行うアクションを追跡するのに役立つように、ほとんどのコントローラーに依存関係が注入された分析サービスがあります。
テスト スイートが作成されるたびにこのサービスのモック バージョンをセットアップするよりも、ngMock アプローチを採用してモックを抽象化することをお勧めします。最善のアプローチは何ですか?
angularjs - Jasmine テストでの Angulars ng-init 関数のモック
角度テストでコントローラーをインスタンス化するときに、この関数を ng-init ディレクティブに挿入したいと思います。html では、次のように設定します。
私のテストでは、スコープに正しいものを貼り付けるこのような関数を書くことができましたが、面倒だと思います。また、現在htmlに組み込まれている機能が途中のテストで台無しになることを心配しています
javascript - angularの$ httpBackendからファイルコンテンツを返す方法は?
angular で e2e テスト スイートをセットアップしようとしていますが、$httpBackend を使用して定型応答を返す必要があります。ファイルの内容を返すことができればいいのですが、たとえば
私は $http を使用しようとしました。
angular は $httpBackend からのプロミスを返すことをサポートしていないと思いますか?
私ができる 1 つの方法は、アプリの読み込み時に応答を含む js ファイルを参照し、ファイルの内容を変数に割り当てることですが、オンデマンドでデータを読み込むことができる方がはるかに優れています。
angularjs - 単純な Jasmine テストで $log サービスを注入する
はい、Angular と Jasmine はまったくの初心者で、テスト用にモック $log を挿入する方法がわかりません。これはテストです:
これは挿入行で失敗し、次のエラーが表示されます。
私は何が欠けていますか?
angularjs - モジュールを依存関係として指定せずに AngularJS に自動的にロードする方法
index.html に angular-mocks.js を含めると、ngMock はそれ自体を自動的に含める魔法を実行します。
ファイルをインクルードし、モジュールの依存関係を編集する必要がないだけで、angular にモジュールをテスト モードでロードさせる最も簡単な方法は何ですか。
javascript - AngularJS によるバックエンドレス テストの初期化
私は AngularJS + RequireJS アプリを持っています。私の仕事は、UI 開発用のバックエンドレス バージョンを作成することです。そのため、リクエストされた HTTP の一部/すべてがモックされたバージョンです。必要なユーザー フローは次のとおりです。
- ユーザーは /debug にアクセスして、バックエンドレス バージョンを初期化します。
- ユーザーは、HTTP リクエストをモックしてアプリを使用できます。
ngMockE2E.$httpBackend を使用しようとしています。しかし、すでにブートストラップされているアプリに挿入する方法に関する情報は見つかりません。グーグルで検索されたほとんどの例に従って、新しいモジュールを作成し、そのモジュールをブートストラップしようとしています:
しかし、これにより、「エラー: ng:btstrpd アプリはこの要素で既にブートストラップされています」というメッセージが表示されます。このタスクを開発する方法についてのアイデアはありますか?
angularjs - $httpBackend を URL クエリ パラメータの順序に影響されないようにするにはどうすればよいですか?
Angular.js$httpBackend
を使用して、呼び出しをラップするいくつかのサービスをテストしてい$http
ます (これは ngMockE2E ではなくngMock にあります)。
expect
やのようなものwhen
は、URL クエリ パラメータの順序に敏感なようです。たとえば、$httpBackend.when('POST','/apiCall?X=1&Y=2').respond(/* ... */)
またはの場合、URL にX=1&Y=2ではなくY=2&X=1$httpBackend.expectPOST('/apiCall?X=1&Y=2')
があると、 URL の不一致が発生します。
テスト対象のサービスが、テストを中断することなく URL クエリ文字列パラメーターの順序を自由に変更できるように、テストを作成したいと考えています。$httpBackend のドキュメントでこれを解決する方法を見つけることができませんでした。これを行う正しい方法は何ですか?