2010-12-16 6 views
6

Obtengo un error constante no inicializado al intentar incluir un módulo auxiliar en una prueba."constante no inicializada" cuando se incluye el módulo auxiliar de prueba

tengo los siguientes archivos en mi carriles directorio test

functional> admin> school_controller_test.rb 
functional> controller_helper.rb 

La clase/cuerpos módulos son los siguientes:

module ControllerHelper 
    def check_sort_order (items, column, direction) 
    ... 
    end 
end 

class Admin::SchoolsControllerTest < ActionController::TestCase 
    include ::ControllerHelper 

    test "should sort by columns" do 
    check_sort_order(assigns(:schools), 'schools.name', 'asc') 
    check_sort_order(assigns(:schools), 'schools.name', 'desc') 
    end 
end 

Cuando ejecuto esto, la salida de prueba es:

/.../.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.3.0/lib/rspec/core/backward_compatibility.rb:20:in `const_missing ': constante no inicializada ControllerHelper (NameError)

He intentado jugar con los espacios de nombres, pero no puedo mezclar el módulo en absoluto. ¿Alguna idea de por qué estoy recibiendo este error? ¿O es esta la forma correcta de extraer funciones de prueba comunes? Soy muy nuevo en Rails, por lo que cualquier consejo sería apreciado :)

¡Salud!

Respuesta

4

Trate de añadir esto a test_helper.rb:

require "test/functional/controller_helper" 

Nota al margen: No estoy seguro acerca de la prueba: unidad, pero rspec tiene un directorio spec/support de archivos para obtener cargará automáticamente.

+0

¡Gracias, buenísimo! Tuve que usar require "functional/controller_helper" para que funcione con la prueba de rake, ahora todo funciona perfectamente. Voy a comenzar con rspec mañana, así que lo soportaré en ese momento, ¡salud! – laura

+0

No sabía sobre especificaciones/soporte. ¡Bonito! – clacke

+0

¿Alguien sabe si hay un directorio similar para prueba/unidad? – Daniel

Cuestiones relacionadas