問題タブ [karma-jasmine]
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 - AngularJS ディレクティブ内のリンクの単体テスト
ディレクティブをテストするために単体テストを作成しようとしています。ただし、チェックボックスをクリックしても、モデルは更新されません。
モデルを変更するにはどうすればよいですか?なんとなくまとまりそうにない。
ディレクティブを削除し、スコープ var にバインドされた単純なチェックボックスを使用すると、以下と同じ動作が見られます。(したがって、これは特にディレクティブの問題ではありません)
仕様機能:
angularjs - Karma-Jasmine を使用した単体テスト
angularJS を使用しており、カルマ ジャスミンで $scope オブジェクトをテストする方法を理解していますが、コントローラー ファイル内の通常の関数と変数をテストするのが困難です
私がやりたいことは、expect(aNumber).toBe(34); かどうかをテストすることです。
angularjs - angularJs httpリクエストjsonpをテストする方法
そのため、途中でいくつかの単体テストを作成しようとしながら、このチュートリアルに従おうとしています。
さて、私は ergast 開発者 API への $http リクエストをテストしようとして立ち往生しています。チュートリアルでわかるように、$http リクエストはサービスergastAPIserviceに対して行われます。
次に、コントローラーで使用されます。
これ(サービス)をテストするにはどうすればよいですか。私はこのようなものを始めました:
私が言ったように、これを機能させるために、応答に入力したものはすべて、テストで期待するものである必要があり、実際のモックされた $http 要求とは何の関係もないと思いました...または私はこれをすべて間違っている
ヒントや正しい方向への指示は非常に高く評価されます。
乾杯!
http-headers - superagent と jasmine-ajax を使用したテストでのヘッダー Content-Type の大文字と小文字の区別の問題
テスト環境でsuperagentとjasmine-ajaxを使用しています (カルマとジャスミン アダプター)。
スーパーエージェントが処理する応答をモックしようとすると、応答ヘッダーの大文字と小文字の区別に関する問題に気付きました。
テスト コード:
superagent.js の行 ~695 には次のものがあります。
mock-ajax.js の行 ~175 には
そのため、明らかにそれぞれのライブラリ内で大文字と小文字に矛盾がありますが、仕様によると、私が行ったすべての調査によると、このフィールドは大文字と小文字を区別しません。PhantomJS の問題かと思い、Chrome も試してみましたが、同じ問題が発生します。
任意の洞察をいただければ幸いです。
angularjs - Angular $q qith Jasmine 2 とカルマのテスト
次のような約束ベースのサービスをテストしようとしています:
Karma + Jasmine 2.0 でこれをテストしようとすると、done() コールバックを使用しようとしますが、常にタイムアウトし、約束を解決しません。
Jasmines docs から、非同期コードと一緒に done() を使用する必要がありますが、問題は約束が解決されないことです
angularjs - Angular モックがモジュールの依存関係を注入できません
fooApp
次のように定義されたアプリケーションのAngularコントローラーをテストしたい:
コントローラーMainCtrl
は次のように定義されています。
そこで、次のように、テストを作成するいくつかの方法をテストしました。
そして結果:
beforeEach(angular.mock.module('cwfApp'));
(前のコードの最初の代わりに)でもテストしましbeforeEach
たが、エラーはほとんど同じです。
私の karma.conf.js ファイルに関して、次のファイルのリストを設定しました。
インジェクションは失敗しているように見えますが、自分の構成で何が欠けているか、間違っているかがよくわかりません。上記のスタックトレースでは、多くの説明が得られません...
何か案が?
Angular 1.2.8 を使用しています。
よろしく
@Engineer から提供されたコードを使用して編集します。
エラーはほぼ同じです:
問題を再現するためにフィドルを作成しようとします...
angularjs - Karma と Jasmine を使用して Angular JS で親コントローラー スコープの変数をテストする
ページに 2 つのコントローラーがあります。それらは HTML マークアップに「ラップ」され、一方が「親」で、もう一方が「子」になります。
私のコントローラーの JS ファイルでは、「子」コントローラーの「親」コントローラーからオブジェクトを参照します。
親コントローラー:
子コントローラー:
「子」コントローラーは「親」コントローラー内にネストされているため、親コントローラーのオブジェクトは子コントローラーに継承されます。
すべてのファイルが個々のユニットに分割され、個別にテストされるため、これは Karma テストでは機能しません。プロトタイプの$scope.myReferencedObject.someProperty
継承がないため、単体テスト時に「子」コントローラーで参照が定義されていません。
Karma でこの問題を解決するにはどうすればよいですか?