2017-06-05 4 views
0

として、私は基本的にはミックスインを持っている:テストエンバーミックスイン - コントローラ

export default Ember.Mixin.create({}}; 

を私はこのようにそれを使用します。

export default Ember.Controller.extend(EditControllerMixin, {...}); 

すべてがアプリケーションで正常に動作します。

は、しかし、私がやりたいとについては行く方法がわからない何のテストにこのような何かを書くことです:

const ctrl = Ember.Controller.extend(MyMixin, {...}).create(); 
ctrl.actions.someAction(); 
// assert if behaving as expected 

問題は、現在、私がいるので、有効になりませんneeds: [...]などの注射に問題があるということです私はコントローラを動的に作成しているので、Emberコンテナは存在しないと思います。そのためです。またthis.get()は機能しません。ですから、私は基本的にダイナミックコントローラを作成し、それをEmberランタイムに統合したいと考えています。いくつかの完全な例を望んでいます。

ありがとうございました。

答えて

0

しないでください。可能な限りミックスインをテストします(必要な作業を試みることなく)。

needsをテストするには、コントローラーユニットテストを作成し、テストでは、needsに必要なコントローラーを追加します。

しかし:コントローラで

  • needsが推奨されていません - Ember.inject.controller()は新しい構文です。
  • コントローラ間の依存関係を作成するのは悪いです(これまで見たようにテストするのは難しい) - 簡単にテストできるサービスを作成しないのはなぜですか? mixinに含まれていても、サービスを簡単にテストする必要があります:)