問題タブ [karma-mocha]
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 - $timeout を使用した AngularJS での mocha を使用した単体テスト サービス (e2e テストなし) が終了しない
AJAX を介してデータベースを呼び出す必要があるサービスがあり、これはそのテストです。
エラーで失敗します(モカdone
は呼び出されないため):
私が電話する$timeout.flush
かどうかは問題ではありません。呼び出し$timeout.flush
の後に呼び出すと (AJAX がまだ返されていないため)、エラーがスローされ、 console にログが記録されNo deferred tasks to flush
ます。
私はすでにロードangular-mocks.js
してkarma.conf.js
おり、それらは同じバージョンです(角度とモック、を使用して最新の状態に保たれていますbower update
)。
CEP サービス内では、ajax が呼び出された後、コールバックが a 内で実行され$timeout(-> cb(data))
、何らかの理由で呼び出されることはありません。私は困惑しています。
ここ SO で見たすべての問題は、e2e、ジャスミン、および$httpBackend
モックを使用した同期テストに関連しています。テストのために実際に PHP スクリプトを呼び出す必要があります。また、「プロキシ」をオンに設定しましたkarma.conf.js
開発ツール コンソールは、リクエストが実行されていることを示していますが、停止しています。$timeout
javascript - Karma で実行されている Mocha 単体テスト - done() が定義されていません
Karma を実行するために Mocha で記述されたテストを取得しようとしていますが、それらはある程度機能しますが、done() メソッドを使用して非同期テストを実装することはできません。これにより、基本的にツールが役に立たなくなります。私は何が欠けていますか?
カルマ.conf.js
test-main.js (RequireJS の構成)
テスト/fooSpec.js
これは不自然な例ですが、done() 呼び出しを削除すると成功します。そのまま、私は得る:
これが done() 行です。これがどのように/なぜ定義されていないのですか? 他に Mocha を設定する場所 (またはどのオプションを使用するか) がわかりません。RequireJS が Mocha に干渉する原因となる、ある種のグローバル名前空間またはメタプログラミングの魔法はありますか?
関連する場合に備えて、OS X 10.9.2 の Chrome 33 でテストを実行しています。私はこれに多くの時間を費やし、自動テストをあきらめる準備ができています :( -- QUnit/Karma/RequireJS で同様のレンガの壁があり、テストを正常に自動化するための代替手段を見つけることができませんでした。ばか。
mocha.js - カルマとモカの違い
私は Javascript の世界に不慣れで、主に OOP に夢中です。Karma と Mocha の明確な違いをオンラインで調べてみましたが、うまくいきませんでした。Karma がテスト ランナーであり、Mocha が単体テスト フレームワークであることは知っていますが、Mocha には独自のドライバーもあり、ブラウザーでテストを実行するために使用できます。そうは言っても、カルマが何をもたらすのか、そしてなぜ人々がこれらを組み合わせて使用しているのか理解できません.
mocha.js - mochaレポーターでテストのファイル名を取得する方法
mocha レポーターで現在のテストのファイル名を取得する方法はありますか?
ベースと例には何も見つかりませんでした。
javascript - chai は Karma-mocha では定義されていません
mocha-phantomjs 構成を使用して、テスト ケースを正常に実行しています。現在、Karma ランチャーを使用してこれらのテストを実行しています。しかし、私は問題を抱えてChai is not defined
います。
ここに私の設定ファイルがあります。
私はそれについて調査し、このリンクを見つけました、
karma-runner - karma-cli がファイルをコマンドライン引数として受け入れないのはなぜですか?
プロジェクトの構成を使用していますが、特定のテスト スクリプトに対して 1 回だけカルマを実行したいと考えています。この場合のためだけにまったく新しい構成ファイルを作成する必要はなく、実行したいスクリプトを渡すだけを好みます (つまり、基本的にカルマにfiles: ['myTest.js']
.
しかし、ドキュメントにはその AFAICT のオプションがないようです。なぜこれが欠けているのでしょうか?基本的な機能 IMO のようです。
javascript - null のプロパティ 'spyOn' を読み取れません - angularJS 単体テストでプロミスをモックする
次のコードで spyOn を使用して約束を返す関数をモックしようとしています:
これにより、次のエラーがスローされます。
scope.confirmModal
console.log できるので、このコンテキストには間違いなく存在します。
任意のポインタをいただければ幸いです!