問題タブ [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 - Angular モック $httpBackend は、フラッシュする保留中のリクエストはありません
angularJS $httpBackendの公式ガイドに従って、このテストを行いますが、Karma で次のエラーが表示されます。
Error: No pending request to flush !
at Function.$httpBackend.flush
テスト
});
この単純なコントローラの場合:
});
angularjs - Karma / Jasmine を使用した modalInstance コントローラーの単体テスト
編集:この投稿の最後にあるクイック&ダーティソリューション
ファイルを分割したことを除いて、ウェブサイトで説明されているのと同じ方法で、AngularUI-Bootstrap のモーダル ウィンドウを使用しています。したがって、私は持っています:
CallingController.js :
modalController.js :
このコードをカルマ (カルマ構成ファイルに読み込まれたui-bootstrap-tpls.min.jsファイル) でテストすると、次のエラーが表示されます: エラー: [$injector:unpr] [ http://errors. angularjs.org/1.2.15-build.2389+sha.c5f2f58/ $injector/unpr?p0=%24modalInstanceProvider%20%3C-%20%24modalInstance] 1 at Error (native)、ジャスミンが管理していないことを意味します$modalInstance のプロバイダーを見つけます。
私はまだこのコントローラーで何かをテストしていませんが、ここに私のジャスミンテストファイルがあります:
testModalController.js :
この問題について手がかりはありますか? これは、私が使用 (およびテスト) した最初の「外部」モジュールではなく、他のモジュールと同じことを行いましたが、今回は機能せず、理由がわかりません。
==========================================
EDIT:クイック&おそらく汚い解決策:
さて、ジャスミンのコントローラーのインスタンス化におけるスコープのモック方法に基づいて、問題を「解決」する方法を見つけましたが、おそらくかなり汚いので、私が意図したことを行うためのより良い方法を見つけたら、遠慮なくコメントしてください.
testModalController.js :
このようにすると、Jasmine はプロバイダーを検索しなくなります。これらのプロバイダーを必要としていると思われるアイテムを既に挿入しているためです。それは機能しますが、より良い方法で実行できると思います...
javascript - 工場を備えたAngular Testingコントローラー
こんにちは、ログインを処理する次のコントローラーがあります。
そして、これは私の LoginFactory ログイン関数です:
これは私のbeforeEachです:
そして、ここに私のテストがあります:
私が得るエラーは次のとおりです。
エラー: [$injector:unpr] 不明なプロバイダー: $provideProvider < $provide
これがこれをテストする正しい方法であるかどうかはわかりませんが、提案があればいいでしょう。
ありがとうございました。
gruntjs - "framework:jasmine" のプロバイダーがありません! (解決中: フレームワーク:jasmine)
コマンドを実行するgrunt
と、次の警告が表示されます。
この問題を解決する方法を知っている人はいますか?
angularjs - AngularJS Jasmine テストの get-request
get リクエストを実行するファクトリがあります。テストしたいと思います。残念ながら、カルマ テストは、$httpBackend で定義された応答がないことを示しています。
AngularJs 1.2.14、ジャスミン 2.0、カルマ 0.12.0
テストしたいモジュールは次のとおりです。
私のテストはこれです:
メッセージ:
angularjs - Angular JS - Karma / Jasmine を使用してページ リダイレクトで関数をテストする
Angular コントローラーに次のような関数があります。
簡単な Jasmine テストは上記の関数をカバーし、次のようになります。
上記のテスト自体はパスしますが、Karma はコンソールに次のエラーをスローします。
一部のテストでページ全体がリロードされました。
ページ リダイレクトにより、Karma はこの警告を表示します。これを回避する最善の方法は何ですか?
Jasmine テストで無名関数と Angular 名の両方を指定し、元の関数内でArguments.callee.caller.nameを使用して、関数がそれ自体または Jasmine によって呼び出されているかどうかを判断することを考えました。残念ながら、arguments.callee.caller.nameは常に undefined を返します。これは、Angular と Jasmine が相互にリンクされていることが原因であると思われます。
angularjs - エラーコールバックを呼び出してテストするためにAngularが間違ったURLをテストする
HTTP ポスト エラー コールバックをテストしたいと考えています。実際、私はこのコードを持っています:
httpbackend を使用して、次のように成功したカルバックをテストしました。
URL とデータは適切ですが、間違った URL をテストしたいので、コールバック エラーが実行されます。残念ながら、間違った URL を使用すると、テストが失敗し、コールバック URL が呼び出されません。
間違った URL でテストするのを手伝ってもらえますか?