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

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

unit-testing - Ember コントローラーで計算されたプロパティの単体テスト

私のcontrollers/cart.jsからのコード:

この計算されたプロパティは、モデル内のすべての要素をループし、プロパティのすべての値を追加してsubTotal、 を返しますcart total

カート-test.js

TypeError: Cannot read property 'reduce' of null明らかにループするモデルがないため、テストは失敗します。

cartTotal計算されたプロパティの依存関係をモックして、テストに合格するにはどうすればよいですか?

ありがとう!

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

ember.js - ObjectProxy を使用した Ember 単体テストを統合テストに変換するにはどうすればよいですか?

Ember CLI 1.13.1 にアップグレードする前に、すべてのコンポーネントで単体テストが生成されました。コンポーネントがプロパティに依存している場合、次のように記述した可能性があります。

そして、これはすべて合格/レンダリングします。

私は今、このような統合テストを書いています:

Cannot read property 'forEach' of undefined私が抱えている問題は、テンプレートの一部に{{each}}supplier.pricesを超えるレンダリングエラーがあることです. テンプレートの {{each}} の直前に {{log supply}} を配置すると、 が表示されますundefined。私の推測では、レンダー呼び出しの前にセットは発生していませんか? これを機能させるために何をする必要がありますか? 単体テスト フォームでコールバックや待機は必要ありませんでした。

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

ember.js - 受け入れテストがリセットされない

コンポーネントをテストする受け入れテストがいくつかあります。各テストを個別に実行すると、問題なく合格します。ただし、テストを一緒に実行すると、以前のテストの値が保持されているため失敗します。

これが私のコードです:

filter-test.js

ps-filter/component.js

status/controller.js

status/template.hbs

私が集めたものからすると、前回のテストの残りに をinitialValues設定しているようです。しかし、私はそれを元の状態に戻すはずfilterValuesだと思っていました。afterEachコントローラーの値にリセットされない理由はありますか?

開発で実行すると、コンポーネントは正常に動作することに注意してください。

Ember インスペクターに表示される Ember バージョン:

私は Ember CLI を実行しています0.2.7

編集

これはまったく問題ではないと思いますが、これが私の偽装者のセットアップです。

tests/helpers/setup-pretender.js

テストを実行すると、値が前のテストの値にリセットされるため失敗します。たとえば、 を実行する'filter values can be cleared'と、.filter-id入力には からの同じ.filter-id値が含まれ'only saved filter can be editedます。の値を に'only saved filters can be edited'戻すと'''filter values can be cleared'テストに合格します。

基本的に、コンポーネントはinitialValues最初に要素を挿入するときにプロパティを設定します。プロパティのコピーに設定されているfilterValuesため、コントローラーのfilterValuesプロパティに設定する必要があり、変更しないでください。ただし、変更されたfilterValuesプロパティは次のテストに引き継がれるようです。つまり、initialValues再レンダリング時にその変更されたプロパティに設定されます。そのため、テストはテンプレートを再レンダリングしますが、コントローラーとコンポーネントで変更された値を保持します。

コントローラーでプロパティを作成し、それをコンポーネントに渡すことでテストを通過させることができますが、initialValuesそれはコントローラーに重複したプロパティを持つことを意味します (filterValuesinitialValuesは同じ値を持つため)。

コンポーネント内のユーザー レコードを変更することはできましたが、コントローラーまたはルーター内のレコードのみを変更することになっていると思いました。その上、afterEachフックはアプリをリセットするはずではありませんか?

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

ember.js - Browserstack-runner テストが ember-qunit テストでタイムアウトする

プロジェクトがember-cliあり、すべてのテストは を使用して記述されてember-qunitいます。browserstack-runnerを使用してBrowserstackでテストを実行しています。

browserstack-runner は、私が使用している qunit のプラグインを提供します。以下は私のbrowserstack.json

テストはブラウザスタックで正しく実行されています。唯一の問題は、すべてのテストが実行された(合格した)後でもアクティビティがなく、指定された値(120秒)の後にタイムアウトエラーが発生することです。なぜそれが起こっているのか理解できません。私はそれが特にラッパーであるqunitプラグインと関係があると思います。ember-qunitqunit

browserstackプロジェクトとの統合を試みた人はember-cliいますか?

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

ember.js - ember qunit を使用して非 ember データ モデルをテストする

アプリケーションで使用ember-qunitしていember-cliます。私のアプリはまだember-dataモデルに使用していません。

moduleForModelヘルパーはまったく機能しません。DS.Modelモデルをから 使用するように拡張する必要がありますember-qunitか?

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

ember.js - エンバーJS | Qunit - すでに破棄されたオブジェクトで呼び出されるファントム JS セット

単一のモジュールを実行すると、Ember Qunit テストが正常にパスするという、この奇妙な問題が発生しています。しかし、すべてのモジュールのテスト ケースを実行すると失敗します。

失敗エラーはこんな感じ

すでに破棄されたオブジェクトに対して呼び出されるセット。

誰かがこれを修正するために正しい方向に私を向けることができますか?