問題タブ [ember-testing]

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 に答える
221 参照

ember.js - App.reset を実行しても、reopenClass の状態がリセットされないのはなぜですか?

グローバルな状態を保存する単純なモデルクラスがあります

RC6 と ember-testing を使用して App.reset() を呼び出すと、グローバル people 配列の状態がテスト間で維持されることに気付きます。テスト間でティアダウンが呼び出されたことを示すログが表示されますが、人数がクリアされていません。QUnit のティアダウンでこれをリセットするにはどうすればよいですか?

アップデート

RC6 で "/" ルートをモックしたい場合、xhr をモックした後にモデル フックが再び発火するのをバグが妨げます (これは RC7+ で修正されることを願っています)。

https://github.com/emberjs/ember.js/issues/2997

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

ember.js - ルート遷移の Ember 統合テストを行う方法は?

Toran Billup のTDD ガイドを使用して、ember との統合テストを行う際に問題が発生しています。

Qunit と Phantom JS のテスト ランナーとして Karma を使用しています。

if の半分は、Ember ランループに関する私の初心者の知識に関係していると確信しています。私の質問は2つの部分です:

1) vist() テストを実行ループに適切にラップするにはどうすればよいですか?

2) トランジションをテストするにはどうすればよいですか? インデックス ルート (「/」) は、「projects.index」というリソース ルートに遷移する必要があります。

正しい方向への指針を前もって感謝します。

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

javascript - ember 統合テスト エラー。非同期の副作用に対処する

ember の統合テスト パッケージ ( http://emberjs.com/guides/testing/integration/ ) を試していますが、このエラーが発生しています

このエラーを再現するために JSBin を作成しました: http://jsbin.com/InONiLe/9。ブラウザのコンソールを開くと確認できます。

このエラーの原因は、 のメソッド内の行data.set('isLoaded', true);にあると思います。(コードへのリンク: http://jsbin.com/InONiLe/9/edit )load()App.Posts

ここで、data.set('isLoaded', true);行を で囲むEmber.run()と、期待どおりに機能し、テストに合格します。

ただし、私は多くのモデルにこのパターンを使用しており、すべて.set()を でラップしたくありませんEmber.run()(トランジションでも同じエラーが発生します)。また、テストを機能させるためにアプリケーション コードを変更したくありません。

エラーを修正するために他にできることはありますか?

注: 意図的にモデル フックで promise を返さないようにしています。そうしないと、promise が解決されるまで UI がブロックされるためです。ローディング スピナーを表示できるように、ルートへの遷移をすぐに実行したいと考えています。

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

ember.js - ember app kit: 一部のテスト関数が定義されていません

ember アプリ キットに基づいて、最初の ember アプリを作成します。

移行後に現在のルートをテストしたかったのですが、ember docs で必要なものだけを見つけました -とヘルパーcurrentRouteName関数。currentURLcurrentPath

ただし、これらの関数を使用すると、"ReferencError: currentRouteName is not defined".

同じことの初期実装があると思われるこのプルリクエストに出くわしました-しかし、この機能を適切なemberに追加することを支持して閉じられました...当分の間、このPRからコードをコピーしましたが、実際に取得します拾って私のテストに合格しました。

質問: ember.js のコピーで定義されているすべての関数をテストで利用するにはどうすればよいですか? これらのルート ヘルパー関数は関数と一緒に定義されてvisitおりclick、私のテストでは問題なく検出されているようです。または、私のテストはこれらの機能を別の場所から取得していますか?

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

ember.js - 受け入れテストのための Bower の依存関係

ember-app-kit で受け入れテストを開始しようとしています。Grunt テストを実行すると、(ember-simple-auth から) AuthenticatedRouteMixin が未定義になります。grunt サーバーでアプリを実行する場合、これは問題ではないため、受け入れテストのために Bower の依存関係が読み込まれていないと推測します。テスト用にbowerの依存関係をロードするためにセットアップする必要があるものはありますか?

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

ember.js - Can't resolve RSVP.Promise in QUnit integration test

I am writing an integration test for my Ember.js application in QUnit. Before a test, I want to seed some test data by issuing HTTP requests to a dedicated testing API. I use jQuery.post to issue POST requests and I use Ember.RSVP.Promise.cast to turn the jQuery promise into an RSVP promise. However, it never seems to resolve. In the code below, it just hangs. The string "STARTING" is printed but neither "DONE" nor "FAIL" is printed.

I also tried creating a new RSVP Promise as described in the "Advanced usage" section of http://emberjs.com/api/classes/Ember.RSVP.Promise.html, to no avail (it also hanged). If I don't wrap the jQuery promise into an RSVP Promise, it does reach either the "DONE" or "FAIL".

Why doesn't the RSVP Promise resolve?

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

ember.js - IE-8 でのテスト時に、オブザーバーがチェックボックスをオンにしたプロパティでトリガーされない

こんにちは、親愛なるコミュニティのメンバーです。チェックボックスのクリックイベントの処理をテストするときに、IE 8 でのみ問題が発生しています。問題を確認できる JSBIN リンクは次のとおりです: http://jsbin.com/jicijilo/1/

どうやらモジラだけがこれらのような生のソースを処理できるので、モカアダプターとexpectjsソースコード全体を挿入しなければならなかったことを申し訳ありませんhttps://raw.githubusercontent.com/teddyzeenny/ember-mocha-adapter/master/adapter.js

テスト自体は非常に単純です。質問のリストがあり、各質問にはブール値のアクティブな属性があります。すべての質問のこの「アクティブ」属性を切り替えるヘッダーチェックボックスがあります。ただし、ie8 では、クリック ヘルパーを使用してチェックボックスをクリックすると、オブザーバーがトリガーされないようです。テストのコア コードは次のとおりです。

テストはie8で失敗しますが、チェックボックスを手動でクリックすると、オブザーバーがトリガーされます。あなたの助けは大歓迎です。ありがとう、ディー

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

ember.js - transitionToRoute が原因で ember テストがハングする

ember.js v 1.5.1 を使用。

カルマとクユニットを使用して、ember アプリケーションをテストします。私のテストのいくつかで、1.ユーザーがクリックする->2.サーバーに対して非同期呼び出しが行われる->そして3.コントローラーの「this.transitionToRoute('someroute')」を介した遷移が呼び出される状況があります. テスト中に transitionToRoute メソッドにヒットすると、カルマがハングします。ember.run 呼び出しでラップしようとしましたが、役に立たなかったようです。

遷移呼び出しをコメントアウトすると、それが実行され、それに応じて失敗します。

ハングして同等の呼び出しに到達しないテスト コードの例

コントローラーコード

テスト ケースの実行

テスト ケースがハングする

ぶら下がっている理由を知っている体はありますか?/それを継続させるために何ができますか?

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

ember.js - テスト中に「バックエンドが無効なためコミットを拒否しました」を処理する

私は Ember Data を使用している ember-cli アプリを持っており、フォームを送信して質問するという失敗のケースをカバーする受け入れテストを作成しようとしています。テストでは、エラー オブジェクトを返すためにPretenderを使用して応答をモックし、送信が失敗したことを知らせるメッセージがユーザーに表示されることをアサートしています。

エラーメッセージが表示されるかどうかをチェックする、私が書いた実際のアサーションは合格です。問題は、 の失敗も受け取っていることですError: The backend rejected the commit because it was invalid: {title: can't be blank, body: can't be blank}

テスト中にこのエラーを黙らせる方法はありますか? 私はこれに間違ってアプローチしていますか? この場合、実際にはエラーではありません。それが私がカバーしようとしていることなので、バックエンドはコミットを拒否する必要があります。

テストは次のとおりです。

そして、トリガーされている関連アクション:

そして、ポップアップしている失敗:

テストの失敗

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

ember.js - アプリケーションを「必要とする」コントローラを新しくする方法は?

「ニーズ」を追加する前は、コントローラーは次のように見えました

これにより、非常に単純な単体テストを次のように書くことができました

しかし、そのように「ニーズ」ブロックを追加した後...

「新しいアップ」は機能せず、QUnit / ember は次のようなエラーをスローしています

「このコントローラがコンテナでインスタンス化されていることを確認してください」

「プルイン/ ember-qunitを使用する」と言わずに、他にどのようなオプションがありますか? コンテナーの要件を満たすために、単純に「スタブ」をスラムできますか?