5

Lo que debo lograr es utilizar (confiar) en el método current_user al definir los pasos de Pepino. Estoy usando autorización en mi proyecto.Pepino y liquidación: usuario_actual en pasos

En primer lugar, traté de usar sign_in pero no funcionó (supongo que Cucumber World no conoce los métodos de autorización ...).

Entonces, ¿cómo hago que Cuckes reconozca los métodos current_user y sign_in/sign_out?

Respuesta

6

Sus características de Cucumber deben conducir su aplicación a través de la interfaz de usuario pública. Algo así como:

Given /^I am signed in as "([^\"]*)"%/ do |username| 
    visit 'sign_in' 
    fill_in 'Username', :with => username 
    click 'Sign In' 
end 

Dado que el método current_user no está disponible para el navegador, no se debe utilizar en su especificación.

Puede falsificarlo en sus pasos al almacenar @current_user en el paso anterior y luego proporcionarle un lector de atributos.

+0

Después de 9 meses me di cuenta de cómo cucke bien. Ahora entiende por qué tu respuesta fue correcta en un día. – gmile

+0

Aún así es frustrante. Porque 'current_user' es' nil' incluso en el lado del servidor, no solo en el lado del navegador. –

1

No estoy de acuerdo con la idea de que cada prueba de aceptación (pepino u otro) debe ejercer la lógica de inicio de sesión. Afortunadamente, si acepta, Clearance agregó un back door en las pruebas que le permiten omitir el inicio de sesión en los pasos.

user = create(:user) 
visit posts_path(as: user) 

Ahora usted puede dejar sus funciones relacionadas con la conducción de inicio de sesión-la interfaz de usuario de inicio de sesión como un usuario tendría que saltar y de las características que no están directamente relacionados con el registro en.

+0

¡Muchas gracias! – kwerle

Cuestiones relacionadas