Pepino y Liquidación: current_user en los pasos
-
26-09-2019 - |
Pregunta
Lo que que, para llevar a cabo es utilizar (depender) Método current_user
mientras define los pasos de pepino. Estoy usando Liquidación en mi proyecto.
En primer lugar me trató de usar sign_in
pero no hizo el trabajo (supongo pepino mundo no sabe acerca de los métodos de liquidación ...).
Entonces, ¿cómo hago Cuckes reconocen current_user
y sign_in
/ métodos sign_out
?
Solución
Sus características pepino debe conducir a su aplicación a través de la interfaz de usuario público. 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 debe ser de utilizarla en la especificación.
Usted podría fingir en sus pasos por el almacenamiento de @current_user
en la anterior etapa y luego proporcionar un lector de atributo para él.
Otros consejos
No estoy de acuerdo con la idea de que todas las pruebas de aceptación (pepino o de otro tipo) debe ejercer la lógica de inicio de sesión. Por suerte, si está de acuerdo, Liquidación ha añadido una href="http://robots.thoughtbot.com/faster-tests-sign-in-through-the-back-door" puerta de atrás en las pruebas que le permite omitir el signo en los pasos.
user = create(:user)
visit posts_path(as: user)
Ahora usted puede dejar a sus características de inicio de sesión relacionada con la conducción de 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.