問題タブ [ember-qunit]
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.
ember.js - Ember.js でエラーをスローするテスト
統合された QUnit テスト フレームワークを使用して、ルートにアクセスしないとエラーが発生するかどうかをテストする必要があります。
ルートには、特定の条件下でエラーをスローするハンドルバー ヘルパーがあります (アサーションの失敗)。このエラーがスローされるかどうかをテストするにはどうすればよいですか?
これは私がこれまでに得たものです:
エラーがキャッチされずthrows(...)
、テストフレームワークにバブルアップし、このテストが失敗としてマークされるため、機能しません。
これはテスト出力です:
Asvisit('/missing')
は promise を返します.then(success, error)
。
unit-testing - Ember-qunit 単体テスト ヘルパー: 現在どのように機能していますか?
最近まで、ファイルを含めていました...
https://raw.githubusercontent.com/rwjblue/ember-qunit-builds/master/dist/globals/main.js
...「TestRunner」ページで、すべての Ember 単体テストを実行するために開きます。すべてが素晴らしかった。
数日前、そのファイルが github から消えたので、単体テスト (例: moduleForComponent テスト) を実行する新しい方法を探し始めました。
最初に、 ember-qunit-buildsリポジトリからember-qunit.jsファイルを単純にインクルードしようとしましたが、 「モジュール 'ember' が見つかりませんでした」などのエラーが返されました。
ember-qunit が何らかの形でember-test-helpersに依存しているというのは正しいですか? テストコードの前にどの参照を含める必要があるかについて少し迷っています...経験がほとんどないES6スタイルのモジュール(エクスポート/インポートなど)に関連する何かが欠けていると感じています。
誰かがここで正しい方向に私を向けることができますか? 「moduleForComponent」スタイルのテストを再度実行するには、「TestRunner.html」ページに何を含める必要がありますか?
注:私は.NET環境にいますが、これを「インストール」するための頻繁に言及されるツール(Bower/npmなど)が実際には利用できないことを理解しています(これらはこれを機能させるために必要ですか?)。
ember.js - 残り火テストでPhantomJS 2.0がハングアップする
私は簡単な ember-cli アプリを持っています。で単体テストをember test
実行すると、phantomJS で実行されます。Function.prototype.bind
ファントム 1.9.x にその API がないというよく知られた問題のため、を使用したテストは失敗しています。ファントム 2.0 をインストールember test
しましたが、ビルドに成功した後に を実行すると、テストは実行されず、ハングしたままで、エラーも何もありません。
ここで問題が何であるか、またはそれを追跡する方法についてのアイデアはありますか?
OSはWindowsです。
ember.js - Pretender と QUnit: エラー: アサーションに失敗しました: findQuery からの応答は未定義ではなく、配列でなければなりません
最近の更新でテストが壊れたようです。Pretender を使用してサーバー呼び出しをモックしていますが、エラーが発生していますError: Assertion Failed: The response from a findQuery must be an Array, not undefined
。
アプリでそのページにアクセスしてもエラーは発生しないことに注意してください。このエラーは、テストを実行したときにのみ表示されます。
私はすでにthis、this、およびthisを見てきましたが、私の場合、これらの解決策はどれも当てはまらないようです。
私の Pretender ヘルパーの関連コードは次のとおりです。
そして、これはテストです:
これは、上記のような動的ルートを使用するテストにのみ影響することに注意してください。このルートを使用するテストは正常に機能します。
私はこれをやってバイパスしようとしましたfind
:
ただし、それでも同じエラーが発生します。
何か案は?この問題をどのようにデバッグしますか?
さまざまなバージョン:
javascript - ember-cli は、カスタム アサーション ヘルパーを使用して assert を拡張します。
最新のember-cliでは、単体テストで、関数は最後のパラメーターとして、オブジェクトを最初のパラメーターとしてtest
持つ関数を期待しています。assert
このオブジェクトを拡張して独自のカスタム アサーション ヘルパーを追加するにはどうすればよいでしょうか?
たとえばcontrolDisabled
、コントロールが無効になっている場合は true を返し、それ以外の場合は false を返すヘルパーを追加したいと考えています。assert
したがって、どこかで (ただし、各テスト ファイルではなく) 、次のようにパラメーターとして指定されたオブジェクトを拡張したいと考えています。
これはどこで定義すればよいですか?
ember.js - Ember Qunit 統合テストを rails-csrf で有効にするには、どこで Pretender を使用すればよいですか?
ember-cli アプリでrails-csrfを使用しています。rails-csrf の README には次のように書かれています。
csrf サーバー エンドポイントへの呼び出しをモックアウトしてください。そうしないと、テストは失敗します
"error while processing route: [route]"
ブラウザ コンソールのメッセージ。例えば:
私はここで問題を理解し (私たちの統合テストは実際にこのエラーを示しています)、Pretenderがそれをどのように解決するかを理解しています。ember-cli-pretenderを介して Pretender をインストールしました。
私が理解できないのは、このコード スニペット (Pretender モックの構成) が機能していることを確認する方法です。統合テストモジュールのブロックにインストールしてsetup
呼び出しますが、エラーはまだ存在し、テストはまだ合格していません。
現在の非稼働状態は次のとおりです。
モックが呼び出されていますが、それが返すものは明らかに rails-csrf には十分ではありません。beforeModel
アプリケーション ルートの呼び出しが promise を返しているようです。それが予想され、解決されているかどうかは明らかではありません。
(この質問は表面的にはこの古い質問に似ていますが、Ember でこれを処理するために使用できるツールは大幅に変更されています。)