Pepino e autorização: current_user nas etapas
-
26-09-2019 - |
Pergunta
O que eu realizar é usar (confiar) current_user
método ao definir etapas de pepino. Estou usando autorização no meu projeto.
Primeiro de tudo, tentei usar sign_in
Mas não funcionou (acho que o Cucumber World não sabe sobre métodos de liberação ...).
Então, como faço para fazer cuckes reconhecer current_user
e sign_in
/sign_out
métodos?
Solução
Seus recursos de pepino devem impulsionar seu aplicativo através da interface pública do usuário. Algo como:
Given /^I am signed in as "([^\"]*)"%/ do |username|
visit 'sign_in'
fill_in 'Username', :with => username
click 'Sign In'
end
Desde o current_user
O método não está disponível para o navegador, você não deve usá -lo em suas especificações.
Você pode fingir em seus passos armazenando @current_user
na etapa acima e depois fornecer um leitor de atributos para ele.
Outras dicas
Não concordo com a ideia de que todo teste de aceitação (pepino ou não) deve exercer a lógica de login. Felizmente, se você concorda, a liberação adicionou um porta dos fundos Em testes que permitem pular a sinal em etapas.
user = create(:user)
visit posts_path(as: user)
Agora você pode deixar seus recursos relacionados ao login que impulsionam a interface do usuário de login como usuário faria e pule isso para recursos que não estão diretamente relacionados ao login.