問題タブ [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.
unit-testing - Ember コントローラーで計算されたプロパティの単体テスト
私のcontrollers/cart.jsからのコード:
この計算されたプロパティは、モデル内のすべての要素をループし、プロパティのすべての値を追加してsubTotal
、 を返しますcart total
。
カート-test.js
TypeError: Cannot read property 'reduce' of null
明らかにループするモデルがないため、テストは失敗します。
cartTotal
計算されたプロパティの依存関係をモックして、テストに合格するにはどうすればよいですか?
ありがとう!
ember.js - ObjectProxy を使用した Ember 単体テストを統合テストに変換するにはどうすればよいですか?
Ember CLI 1.13.1 にアップグレードする前に、すべてのコンポーネントで単体テストが生成されました。コンポーネントがプロパティに依存している場合、次のように記述した可能性があります。
そして、これはすべて合格/レンダリングします。
私は今、このような統合テストを書いています:
Cannot read property 'forEach' of undefined
私が抱えている問題は、テンプレートの一部に{{each}}
supplier.pricesを超えるレンダリングエラーがあることです. テンプレートの {{each}} の直前に {{log supply}} を配置すると、 が表示されますundefined
。私の推測では、レンダー呼び出しの前にセットは発生していませんか? これを機能させるために何をする必要がありますか? 単体テスト フォームでコールバックや待機は必要ありませんでした。
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
それはコントローラーに重複したプロパティを持つことを意味します (filterValues
とinitialValues
は同じ値を持つため)。
コンポーネント内のユーザー レコードを変更することはできましたが、コントローラーまたはルーター内のレコードのみを変更することになっていると思いました。その上、afterEach
フックはアプリをリセットするはずではありませんか?
ember.js - Browserstack-runner テストが ember-qunit テストでタイムアウトする
プロジェクトがember-cli
あり、すべてのテストは を使用して記述されてember-qunit
います。browserstack-runnerを使用してBrowserstackでテストを実行しています。
browserstack-runner は、私が使用している qunit のプラグインを提供します。以下は私のbrowserstack.json
テストはブラウザスタックで正しく実行されています。唯一の問題は、すべてのテストが実行された(合格した)後でもアクティビティがなく、指定された値(120秒)の後にタイムアウトエラーが発生することです。なぜそれが起こっているのか理解できません。私はそれが特にラッパーであるqunit
プラグインと関係があると思います。ember-qunit
qunit
browserstack
プロジェクトとの統合を試みた人はember-cli
いますか?
ember.js - ember qunit を使用して非 ember データ モデルをテストする
アプリケーションで使用ember-qunit
していember-cli
ます。私のアプリはまだember-data
モデルに使用していません。
moduleForModel
ヘルパーはまったく機能しません。DS.Model
モデルをから 使用するように拡張する必要がありますember-qunit
か?
ember.js - エンバーJS | Qunit - すでに破棄されたオブジェクトで呼び出されるファントム JS セット
単一のモジュールを実行すると、Ember Qunit テストが正常にパスするという、この奇妙な問題が発生しています。しかし、すべてのモジュールのテスト ケースを実行すると失敗します。
失敗エラーはこんな感じ
すでに破棄されたオブジェクトに対して呼び出されるセット。
誰かがこれを修正するために正しい方向に私を向けることができますか?