Dispositivos de trilhos não carregando com rspec
Então, estou tentando aprender a estrutura de testes rspec BDD no contexto de um projeto de trilhos. O problema que estou tendo é que eu não posso, para a vida de mim, obter meus equipamentos para carregar corretamente em descrições de rspec.
Disclaimer: Sim, existem coisas melhores que as fixtures para usar. Eu estou tentando aprender uma coisa de cada vez, aqui (especificamente rspec) antes de eu ir jogar com ferramentas associadas como factory-girl, mocha, auto-teste, etc. Como tal, eu estou tentando obter o dead-simple , se desajeitado, fixtures funcionando.
De qualquer forma, aqui está o código:
/test/fixtures/users.yml -
# password: "secret"
foo:
username: foo
email: [email protected]
password_hash: 3488f5f7efecab14b91eb96169e5e1ee518a569f
password_salt: bef65e058905c379436d80d1a32e7374b139e7b0
bar:
username: bar
email: [email protected]
password_hash: 3488f5f7efecab14b91eb96169e5e1ee518a569f
password_salt: bef65e058905c379436d80d1a32e7374b139e7b0
/spec/controllers/pages_controller_spec.rb -
require 'spec/spec_helper'
describe PagesController do
integrate_views
fixtures :users
it "should render index template on index call when logged in" do
session[:user_id] = user(:foo).id
get 'index'
response.should render_template('index')
end
end
E o que estou recebendo quando executo 'rake spec' é:
NoMethodError in 'PagesController should render index template on index call when logged in'
undefined method `user' for #<Spec::Rails::Example::ControllerExampleGroup::Subclass_1:0x2405a7c>
/Library/Ruby/Gems/1.8/gems/actionpack-2.3.5/lib/action_controller/test_process.rb:511:in `method_missing'
./spec/controllers/pages_controller_spec.rb:7:
Isto é, não está reconhecendo 'user (: foo)' como um método válido.
As fixtures em si devem estar ok, desde quando eu as carrego no banco de dados de desenvolvimento via 'rake db: fixtures: load', eu posso verificar se foo e bar estão presentes naquele db.
Eu sinto que estou perdendo algo óbvio aqui, mas eu tenho arrancado meu cabelo o dia todo sem sucesso. Qualquer ajuda seria apreciada.