2011-06-03 9 views
28

En mi spec_helper.rb que tienenRSpec 2 config: tipo tipos

config.include Devise::TestHelpers, :type => :controller 

para que realmente puedo probar mis controladores que requieren que el usuario sea autenticado. Sin embargo, las especificaciones para la misma clase en las solicitudes también deben iniciar sesión o las pruebas fallarán. He intentado

config.include Devise::TestHelpers, :type => :request 

pero eso tampoco funciona. Parece que no puedo encontrar qué tipo de opciones puedo pasar al rspec incluir o extender métodos. Asumo: modelo y: vista estaría allí pero los otros estoy completamente inseguro. ¿Qué debería estar usando para que mi especificación de solicitudes pueda pasar y hay una lista de los diferentes tipos para: escriba?

+0

que tienen la misma pregunta. ¿Alguna vez lo descubriste? – Karl

Respuesta

27

Este compromiso debería ayudar a aclarar la opción :type.

https://github.com/rspec/rspec-rails/commit/fc5cdbb603f0e66f9f3d19a0a60a775e124fb218

:type => :request es válida, así que estoy seguro de por qué sus pruebas están fallando.

¿Qué directorio contiene sus pruebas de integración? Por lo general, están ubicados en spec/requests o posiblemente spec/integration.

Puede utilizar otra opción para especificar cuándo incluir Devise :: TestHelpers; la opción es :example_group:

config.include Devise::TestHelpers, :example_group => { 
    :file_path => config.escaped_path(%w[spec (requests|integration)]) 
} 

Ahora, idearán :: TestHelpers se incluirán en ejemplo grupos cuyo archivo está dentro de las rutas especificadas.

Asegúrese de reemplazar el miembro de la matriz (requests|integration) con el nombre de la carpeta donde se encuentran sus pruebas de integración.

+0

Excelente. Esto ayudará a incluir un archivo de macros para el nuevo directorio de especificaciones/características que le gusta usar a Capybara 2.x. – sockmonk

+0

config.escape_path no funciona en el último rspec que he usado 'config.include RakeTestHelper,: example_group => {: file_path =>% r (spec/api)}' – Calin

4

Tal vez es demasiado tarde, pero para cualquiera que lo necesite, cambiando el tipo de :feature trabajado para mí:

config.include Devise::TestHelpers, :type => :feature