9

ember ルートの connectOutlets が成功したことをテストするための良いアドバイスはありますか?

たとえば、次のルートがあります。

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'

しかし、これはあまり良いテストではないと思います。

4

1 に答える 1

1

私の意見では、このコードはテストに値しません。

まず、このコードの望ましい動作を正式に定義しましょう。

ルーターが「vault/index」状態に移行し、すべてが正常である場合、次のことが起こります。

  1. Ember は ExercisesHomeView の新しいインスタンスを作成します
  2. Ember は、exerciseHomeController の content プロパティを演習のリストに設定します。
  3. Ember は、作成したビューを ExercisesView テンプレートのメイン アウトレットに接続します。

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

私の意見では、このコードでテストに値する可能性があるのは 1 つだけです。それは、コントローラーに正しいデータを提供しているかどうかですそれでも、私はこのコードの誤動作に直面した後でのみ、このコードをテストしました。

于 2012-10-10T17:51:28.770 に答える