問題タブ [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.

0 投票する
5 に答える
26864 参照

angularjs - Angular モック $httpBackend は、フラッシュする保留中のリクエストはありません

angularJS $httpBackendの公式ガイドに従って、このテストを行いますが、Karma で次のエラーが表示されます。 Error: No pending request to flush ! at Function.$httpBackend.flush

テスト

});

この単純なコントローラの場合:

});

0 投票する
3 に答える
27745 参照

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 はプロバイダーを検索しなくなります。これらのプロバイダーを必要としていると思われるアイテムを既に挿入しているためです。それは機能しますが、より良い方法で実行できると思います...

0 投票する
1 に答える
1520 参照

javascript - 工場を備えたAngular Testingコントローラー

こんにちは、ログインを処理する次のコントローラーがあります。

そして、これは私の LoginFactory ログイン関数です:

これは私のbeforeEachです:

そして、ここに私のテストがあります:

私が得るエラーは次のとおりです。

エラー: [$injector:unpr] 不明なプロバイダー: $provideProvider < $provide

これがこれをテストする正しい方法であるかどうかはわかりませんが、提案があればいいでしょう。

ありがとうございました。

0 投票する
6 に答える
43866 参照

gruntjs - "framework:jasmine" のプロバイダーがありません! (解決中: フレームワーク:jasmine)

コマンドを実行するgruntと、次の警告が表示されます。

この問題を解決する方法を知っている人はいますか?

0 投票する
2 に答える
8225 参照

angularjs - AngularJS Jasmine テストの get-request

get リクエストを実行するファクトリがあります。テストしたいと思います。残念ながら、カルマ テストは、$httpBackend で定義された応答がないことを示しています。

AngularJs 1.2.14、ジャスミン 2.0、カルマ 0.12.0

テストしたいモジュールは次のとおりです。

私のテストはこれです:

メッセージ:

0 投票する
2 に答える
12063 参照

angularjs - Angular JS - Karma / Jasmine を使用してページ リダイレクトで関数をテストする

Angular コントローラーに次のような関数があります。

簡単な Jasmine テストは上記の関数をカバーし、次のようになります。

上記のテスト自体はパスしますが、Karma はコンソールに次のエラーをスローします。

一部のテストでページ全体がリロードされました。

ページ リダイレクトにより、Karma はこの警告を表示します。これを回避する最善の方法は何ですか?

Jasmine テストで無名関数と Angular 名の両方を指定し、元の関数内でArguments.callee.caller.nameを使用して、関数がそれ自体または Jasmine によって呼び出されているかどうかを判断することを考えました。残念ながら、arguments.callee.caller.nameは常に undefined を返します。これは、Angular と Jasmine が相互にリンクされていることが原因であると思われます。

0 投票する
0 に答える
286 参照

angularjs - エラーコールバックを呼び出してテストするためにAngularが間違ったURLをテストする

HTTP ポスト エラー コールバックをテストしたいと考えています。実際、私はこのコードを持っています:

httpbackend を使用して、次のように成功したカルバックをテストしました。

URL とデータは適切ですが、間違った URL をテストしたいので、コールバック エラーが実行されます。残念ながら、間違った URL を使用すると、テストが失敗し、コールバック URL が呼び出されません。

間違った URL でテストするのを手伝ってもらえますか?