2012-08-09 23 views
9

¿Alguien tiene algún buen consejo para probar que connectOutlets de la ruta de ascuas ha sido exitoso?probando ember.js connectOutlet

Por ejemplo, tengo las siguientes rutas:

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 

¿Cómo hago para comprobar que esto estaba teniendo el comportamiento deseado?

puedo probar la currentState.path así:

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

Pero no creo que esto es una prueba muy buena.

Respuesta

1

En mi opinión, este código no merece ser probado.

En primer lugar, vamos a definir formalmente un comportamiento deseado para este código:

Cuando las transiciones del router al estado 'bóveda/index', y todo está bien, sucede lo siguiente:

  1. Ember crea nueva instancia de ExercisesHomeView
  2. Ember establece la propiedad del contenido exercisesHomeController a una lista de ejercicios
  3. Ember conecta la vista creada a la salida principal de la plantilla ExercisesView

Usted ve, todo el trabajo significativo es hecho por Ember. Por lo tanto, estrictamente hablando, no hay nada que probar, ya que no probamos código de terceros.

En mi opinión, este código solo tiene una cosa que quizás merece una prueba: si estamos proporcionando los datos correctos al controlador. Incluso entonces, probaría este código solo después de enfrentar su mala conducta.