2012-08-09 14 views
9

誰かがemberルートのconnectOutletsが成功したことをテストするための良いアドバイスを持っていますか?testing ember.js connectOutlet

例えば、私は次のルートを持っている:

vault: Ember.Route.extend 
    route: '/vault' 
    connectOutlets: (router, event) -> 
    router.get('applicationController').connectOutlet 'exercises' 
    index: Ember.Route.extend 
    route: '/' 
    connectOutlets: (router, event) -> 
     exercises = WZ.store.find(WZ.Exercise) 
     router.get('exercisesController').connectOutlet 'main', 'exercisesHome', exercises 

は、どのように私は、これは望ましい行動を持っていたことを確認しに行きますか?

私はこのようなcurrentState.pathをテストすることができます。

it 'should transition to vault', -> 
    Ember.run => 
    @router.transitionTo 'vault' 
    expect(@router.getPath('currentState.path')).toEqual 'root.vault' 

しかし、私は、これは非常に良いテストだとは思いません。

答えて

1

私の意見では、このコードはテストに値するものではありません。ルータの「ボールト/インデックス」状態に遷移し、すべてがOKですが、以下のような場合は

まずは、正式にこのコードのために必要な動作を定義してみましょう

  1. エンバーは、新規作成しますExercisesHomeView
  2. エンバーのインスタンスは、
  3. エンバーはExercisesViewテンプレートにメイン出口に作成されたビューを接続演習のリストにexercisesHomeControllerのコンテンツプロパティを設定

すべての意味のある作業はEmberによって行われています。したがって、厳密に言えば、テストするものはありません。なぜなら、サードパーティのコードをテストしないからです。

私の意見では、このコードにはかもしれないが、の場合は、コントローラーに適切なデータを提供しているかどうかということが1つしかありません。それでも、私はその誤動作に直面した後にのみ、このコードをテストします。