Arquivos

Posts Etiquetados ‘rails’

Rails – Testes funcionais com cookie

11/02/2010 3 comentários

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
...
Categoriasruby Etiquetas: , ,

Textmate apenas com o que é necessário

05/01/2009 1 comentário

Seguindo sugestão do Luiz…

Você usa o Textmate para desenvolvedor em Rails, então deve estar habituado abrir todas as pastas do projeto, com o famoso:

mate .

Mas isso, quando se tem um projeto muuuuuito grande, a pasta public, log, vendo acabar deixando o Textmate um pouco mais lendo. Para acelerar, eu abro apenas as pastas, exceto as mencionadas anteriormente, então:

mate app/ config/ db/ lib/ script/ test/ README Rakefile

Pra isso, fiz um alias:

alias rmate="mate app/ config/ db/ lib/ script/ test/ README Rakefile"

Mas aí começa a vir novos plugins e gems, que criam arquivos/pastas novas que queremos adicionar ao projeto, like RSpec/Capistrano, então, dá-lhe refactoring no alias.

alias rmate="mate app/ config/ db/ lib/ scrpit/ spec/ \
stories/ test/ README Rakefile Capfile

Agora, estou mudando de projeto, e novas pastas são requeridas e, ao invés de adicionar as pastas/arquivos ao alias, resolvi pensar um pouco mais, então, olha que bonito.

mate $(ls -1 | egrep -v log | egrep -v git | egrep -v public \
| egrep -v vendor | egrep -v tmp | egrep -v doc | egrep -v .DS_Store)
mate $(ls -1 | egrep -v "(log|git|public|vendor|tmp|doc)" | \
egrep -v .DS_Store)

Agora, basta criar uma função no .bashrc e atualizar meu alias para facilitar a vida, então:

_rmate() {
mate $(ls -1 | egrep -v log | egrep -v git | egrep -v public\
 | egrep -v vendor | egrep -v tmp | egrep -v doc | egrep -v .DS_Store)
mate $(ls -1 | egrep -v "(log|git|public|vendor|tmp|doc)" | \
egrep -v .DS_Store)
}

alias rmate="_rmate"

Pronto!

Categoriasagil, geral, ruby Etiquetas: , , , ,

Merb e Rails juntos!

24/12/2008 1 comentário

Esse é mais um dos milhares de post criados, falando que Rails e Merb agora vão trabalhar juntos!

merbist
engineyard
nome do jogo
akita on rails
no twiter
e por í vai..
ver mais no google

Só digo o seguinte: Até que enfim acabou a babaquice da guerrinha que Merb é melhor, Rails é melhor! Apesar de eu sempre ter usado Rails, sempre ouvi boas coisas que Merb tinha que Rails ainda não tinha. Então, para felicidade geral da nação, o melhor dos dois mundos agora serão um!

Mas era uma discussão besta e sem necessidade!

#prontofalei

Categoriasruby Etiquetas: ,