Rails – Testes funcionais com cookie
Publicado; 11/02/2010 | Autor: Celestino Gomes | Filed under: ruby | Tags: cookie, rails, test | 3 Comments »No meu ApplicationController, coloquei um before_filter que verifica se no cookie do usuário tem uma chave e verifico seu valor. No caso de não existir o valor, ou o mesmo for diferente do esperado, eu mando um reset_session e adiciono a chave com o valor. Até aí beleza. Quando fui rodar minha bateria de testes… BOOM! Estourou um monte de erros nos testes funcionais de admin, já que os mesmos adicionam a sessão um usuário que tem regra de admin, como no exemplo abaixo.
...
class Admin::BlogsControllerTest < ActionController::TestCase
setup do
@admin = Factory(:user, :role => "admin")
@request.session[:user_id] = @admin.id
end
...
end
Bastaria adicionar no setup de cada arquivo de teste funcional uma simples linha:
setup do ... @request.cookies['chave'] = 'valor' end
Mas pensei comigo mesmo: DRY (Don’t Repeat Yourself). Logo, em meu test/test_helper.rb
...
class ActionController::TestCase
setup :setting_cookie_version
def setting_cookie_version
@request.cookies['_bbsession_version'] = APP_CONFIG['session']['version']
end
end
...





