問題タブ [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.
javascript - Ember 統合テスト中にレンダリングされた HTML とコードをデバッグする
コンポーネントのテストを 1 つのページに表示して、一部のメソッド内に挿入しているデバッグを確認できるようにしたいと考えています。
何らかの理由で、テストでデータが正しくロードされていないようで、何がロードされているかを確認したいと考えています。
残念ながら、QUnit は私が入れたものしか表示しません。コンソール ログasserts
を表示できるように、テストを 1 つのページに分離して表示する方法があるかどうか疑問に思っていました。
これはテストのスケルトンです:
EDIT:のみを使用して問題が何であるかを理解しましたassert.equal()
。1 つ欠けていました$()
(jQuery 関数)。例:
レンダリングされたコンポーネントを見て、遊んでいないのは素晴らしいことですassert.equal()
javascript - Ember - テストでヘルパーを作成できません
モデルをシミュレートするために、テスト用のヘルパーを作成しようとしています。
ただし、次のエラーが表示されます。
: makeInventoryObjects が定義されていません
私のテストヘルパー:
ヘルパーの私の開始アプリには含まれていますapplication.injectTestHelpers();
失敗しているテスト:
インポートのコメントを追加するたびに、次のエラーが発生します。
: _frontendTestsHelpersMakeInventoryObjects["default"] は関数ではありません
unit-testing - Ember コントローラーの単体テスト方法
コントローラーの一部である 2 つの別個の関数を呼び出す、ember コントローラーで定義された単一のアクションがあります。アクションメソッドが正しい関数を呼び出したかどうかを確認するために、単体テストでこれらの関数をモックアウトしたいと思います。
私のコントローラーは次のようになります。
実際には、コントローラーは機能しますが、単体テストでは、functionA と functionB は両方とも未定義です。コンソールにログインしようとしましthis
たが、functionA と functionB の場所が見つからないため、適切にモックできません。アクションの隣のオブジェクトの最上位にあると思っていましたが、適切に定義されたものしか見つかりませんでし_actions
たactionMethod
。
私の単体テストは以下のようになります
テスト環境でこれらの機能を置き換える方法について誰かアイデアがありますか? または、この機能をテストしたり、コントローラーをセットアップしたりするためのより良い方法はありますか?
- 編集タイプミス: this.subject から this.subject()
javascript - Ember.js コンポーネント統合テスト: グローバル インジェクションとネストされたコンポーネントを操作するには?
シナリオ: 実際のサービスを使用してコンポーネント A を統合テストしたいと考えていますmy-service
。すべてのコンポーネントにサービスをグローバルに注入する初期化子があります: application.inject('component', 'myService', 'service:my-service');
. コンポーネント A はそのテンプレートでコンポーネント B を使用myService
し、両方ともテンプレートで使用します。
グローバル インジェクションを再作成するにはどうすればよいですか? 完全なアプリケーションはありません。必要なパラメーターがないため、実際のイニシャライザーをインポートして実行することはできません。this.inject.service
グローバルアプリケーションコンテキストではなく、テストコンテキストに挿入するため、機能しません。
すべてのコンポーネントのテンプレートを変更して、サービスをずっと下にチェーンすることができます: {{b-component myService=myService}}
、そして
しかし、それは最後の手段です。また、グローバル インジェクションを取り除き、すべてのコンポーネントに手動でインジェクトすることもできます。それも最終手段です。
この問題の話をhttps://github.com/emberjs/ember.js/issues/12277まで追跡しました。それはほぼ実装されましたが、Grand Testing Unification https://github.com/emberjs/rfcs/pull/119を支持して閉鎖されました。グランドテストの統一を待っている間に解決策はありますか?
ember.js - Ember - コンポーネントの要素の動的入力値をテストで取得する
したがって、次のような単純なコンポーネントがあります。
そして、私はこのような2つのテストを持っています:
最初のテストはパスしますが、2 番目のテストは失敗します。this.$('.my-input').attr('value')
のようundefined
です。なんで?このテストに合格するにはどうすればよいですか?