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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top