2012-08-09 65 views
9

有没有人有任何好的建议,测试烬路由connectOutlets已成功?测试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. 灰烬的实例将exercisesHomeController的内容属性的运动类型
  3. 灰烬连接创建视图的主要出口在ExercisesView模板

你看,所有有意义的工作都是由Ember完成的。因此,严格来说,没有什么可测试的,因为我们不测试第三方代码。

在我看来,这个代码只有一件事,也许值得测试:我们是否提供正确的数据给控制器。即使那样,我也只是在面对它的不正当行为之后才测试这些代码。