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

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

javascript - Angular によって認識されないプロバイダー内の関数

最初に、私が達成したいことの背景を少し説明します。挿入して使用する前に、いくつかの構成が必要なサービスがあります。いくつかの調査を行った後、サービスのプロバイダーを持つことが最善の解決策になると考えました. そこで、この例に従ってプロバイダーを実装しました。Typescript コンパイラー (私は typescript を使用してコードを有効な JavaScript にコンパイルしています) が問題ないと判断したとしても、JavaScript は、プロバイダーを介していくつかのオプションを設定するために使用できる関数を認識しません。

私のコードは次のようになります (一部のコードは省略されているか、名前が変更されています)

この問題は、単体テストの 1 つでプロバイダーを使用し (テスト用に Mocka と共に Karma を使用しています)、setOptions関数を呼び出すときに発生します。これはこのように行われます。

このテストを実行すると、カルマは次のエラーをスローします

TypeError: provider.setOptions は Context.[anonymous] の関数ではありません

また、コンパイルされた JavaScript Visual Studio Code は、行のプロバイダー変数に緑色の警告を表示しています (エラーではないと思います)。.provider('CustomService', CustomServiceProvider);

タイプ '() => void' の引数は、タイプ 'IServiceProvider' のパラメーターに割り当てられません。プロパティ '$get' がタイプ '() => void' にありません。
(ローカル変数) CustomServiceProvider: () => 無効な
プロバイダー

この問題の修正にすでに何時間も費やしましたが、解決策が見つからないようです。私が間違っていることを修正する方法について何か考えはありますか?

前もって感謝します。

編集 (2015 年 9 月 30 日)

私が話しているサービスは次のようになります。

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

unit-testing - Karma はスイート全体を再度実行せずにファイルの変更を更新できますか?

Grunt を通じて Karma を使用しています。約 1000 個のテストがあり、ファイルを変更するたびにすべてのテストを実行するのは少し面倒です ( autoWatch = true)。

これが現在行っていることです。

  1. でカルマを開始しsingleRun=false, autoWatch=falseます。
  2. デバッグ ページを開き、特定のスイートを grep します (mocha html レポーターを使用)。
  3. そのスイートに関連するテストまたはファイルを変更します。
  4. デバッグ ページを更新して、一連のテストを再度実行します。
  5. (3) の私の変更は Karma に反映されていないため、テストは何も変更されていないかのように動作します。

これは私が必要なものです:

  1. でカルマを開始しsingleRun=false, magicOption=trueます。
  2. デバッグ ページを開き、特定のスイートを grep します (mocha html レポーターを使用)。
  3. そのスイートに関連するテストまたはファイルを変更します。
  4. デバッグ ページを更新して、一連のテストを再度実行します。
  5. 私の変更は適切に取得され、grep されたテストのみが実行されます。

設定autoWatch=trueすると必要なものが得られますが、ファイルを変更するたびに 1000 個のテストのスイート全体がバックグラウンドで実行され、すぐに環境が崩壊します。

magicOptionKarma docs によると同等のものはないと思いますが、同じ動作を実現する方法はありますか?

どうもありがとう。

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

mocha.js - Mocha インターフェイス: Uncaught ReferenceError: `describe` が定義されていません

私はモカ/シノン/チャイとjqueryでカルマを実行するためにGulpを使用しています

私の karma.conf.js には次のものがあります。

そして、インストールされているノードモジュールは

しかし、カルマを実行すると、このエラーが発生します

カルマモカとモカをグローバルにインストールしようとしました。karma.conf.js にプラグインとして karma-mocha を入れてみた

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

javascript - Angular テスト タイプ エラー

カルマ、モカチャイ、シノンでテストケースを試しました。

サービスを使用するとエラーが発生します。これは私の間違いです。助けてください。

これは私のindexcontroller.js

これは私の indexcontroller のテストです。indeccontroller.test.js

これは私の共通のサービスです

これがサービスのテストです。

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

karma-runner - XHR と Access-Control-Allow-Origin

私がテストしているメソッドの 1 つは、XMLHttpRequest を「http://localhost:4848/qrs/extension/schema?xrfkey=asdfasdfdf」に送信します。次のようなエラーが表示されます -

これで、テストが「localhost:9876」で提供され、localhost:4848 にアクセスしようとすると、実際にはクロス ドメイン ポリシーに違反していることがわかります。Karma プロキシ設定を確認して試してみました -

しかし、これを行うと、実際には「http://localhost:9876/qrs/extension/schema?xrfkey=asdfasdfdf」からコンテンツが提供されます。しかし、この方法ではクライアント コードは機能しません。クライアント コードは XHR リクエストを「http://localhost:4848/qrs/ .....」に直接送信しますが、「http://localhost:9876/qrs/ .....」には送信しないためです。

どうすればこれを解決できますか?

また、構成ファイルにさまざまなヘッダーを設定するオプションがある方がよいのではないでしょうか? ここでテストについて話していることを少なくとも知っておいてください(つまり、本番環境ではありません)。

前もって感謝します。

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

angularjs - Angular Extend の単体テスト方法

角度拡張を使用しているコントローラーがあります。angular extend をテストするにはどうすればよいですか?

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

facebook - React Js を使用して開発されたアプリのテスト フレームワーク

React JS を使用して開発されたアプリケーションをテストするために使用できるテスト フレームワークについて研究しています。これまでのところ、JEST および Mocha JS (Chai JS および Sinon JS と統合) について読んできましたが、完全に自動化されたテスト フレームワークを開発するために使用できるものを絞り込むことはまだできません。セレン Web ドライバーがフロント エンドに適していることはわかっています。テスト、ReactJS アプリケーションに固有のものはありますか?

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

angularjs - AngularJS と mocha: 各テストの前に $httpBackend を呼び出す

私はangularjsで作業しており、mochajsでテストを書いています。アプリケーションに多言語サポートを実装しましたが、多くのテストケースで language.json に対して予期しないリクエストが発生するという問題があります。

各テストに言語処理用の「$httpBackend.whenGet(.....」を追加せずに、これを処理する方法はありますか?