Um "setup" global para todas as suas specs
Ficou bem difundido no rspec a forma em como fazer o setup antes das specs executarem, assim como existe também no Test::Unit.
describe Act do
before(:each) do
(...)
end
it "should have many persons associated" do
(...)
end
end
Eu estava precisando fazer o setup para todas as minhas specs (do planeta :), então descobri uma forma que está mal documentada(pelo menos eu não achei bom), mas é super simples de usar. É só editar o spec/spec_helper.rb e adicionar dentro do bloco:
Spec::Runner.configure do |config|
(...)
end
O seguinte:
config.before(:each) do
your_global_setup_here
end
Você também pode executar o setup somente para os controllers, models ou helpers assim:
config.before(:each, :behaviour_type => :controller) do
your_global_controllers_setup_here
end
Ou
config.before(:each, :behaviour_type => :helper) do
your_global_helpers_setup_here
end
Ou
config.before(:each, :behaviour_type => :model) do
your_global_models_setup_here
end
Como se chama o “setup” no bdd? É setup mesmo?
27.11.2008 02:50 AM




November 27th, 2008 at 11:53 AM
Qual setup que você queria compartilhar entre todos os métodos?
November 27th, 2008 at 11:01 PM
Também gostaria de saber qual a situação que vc queria compartilhar algo no aplicativo inteiro.
November 27th, 2008 at 11:37 PM
No projeto que estou trabalhando(O V2V, que você começou Eduardo) uma mesma aplicação vai atender diversos domínios. Os conteúdos são diferentes para cada domínio, o que pertende a um site não pode aparecer no outro. A forma de distinguir qual site será apresentado é o domínio. Pelo domínio eu busco no banco qual portal responde por aquele domínio. Se não existe um portal com aquele domínio, é apresentado um 404.
A forma que eu conheço de saber o domínio é pela variável request.env[‘SERVER_NAME’]. Ela vem como nil nos specs de controller, então qualquer teste de controller que eu fizesse seria redirecionado para 404 caso eu não utilizasse isso no spec_helper:
Nas minhas fixtures eu tenho um portal cadastrado com o domínio example.com. Não sei se essa é a melhor forma de fazer, se souberem de uma melhor eu também quero saber como é! :)
Eduardo, no começo de novembro migramos a primeira empresa para o novo V2V, a Rede Social São Paulo. No começo de dezembro iremos migrar o Portal do Voluntário inteiro.
November 27th, 2008 at 11:56 PM
Acho que é isso aí mesmo! Show de bola!