2012-08-09 72 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完成的。因此,嚴格來說,沒有什麼可測試的,因爲我們不測試第三方代碼。

在我看來,這個代碼只有一件事,也許值得測試:我們是否提供正確的數據給控制器。即使那樣,我也只是在面對它的不正當行爲之後才測試這些代碼。