Factory indefinido + RSpec + Rails 3 'método indefinido <atributo> ='

Eu sou bastante novo em trilhos e TDD (como sem dúvida será óbvio no meu post) e estou tendo dificuldade em envolver meu cérebro em torno do Rspec e FactoryGirl.

Estou usando o Rails 3, rspec e garota de fábrica:

gem 'rails', '3.0.3'
# ...   
gem 'rspec-rails', '~>2.4.0'
gem 'factory_girl_rails'

Eu tenho um modelo de usuário no qual eu tenho executado testes com sucesso durante o desenvolvimento, mas precisava adicionar um atributo, chamado "source". É para determinar de onde o registro do usuário veio originalmente (local vs LDAP).

No meu arquivo factories.rb, tenho várias fábricas definidas, que se parecem com o seguinte:

# An alumnus account tied to LDAP
Factory.define :alumnus, :class => User do |f|
  f.first_name "Mickey"
  f.last_name  "Mouse"
  f.username   "mickeymouse"
  f.password   "strongpassword"
  f.source     "directory"
end

Eu tenho uma macro definida (que está trabalhando até agora) que se parece com isso:

def login(user)
  before(:each) do
    sign_out :user
    sign_in Factory.create(user)
  end
end

Estou chamando-o em várias especificações como esta (exemplo de users_controller_spec.rb):

describe "for non-admins or managers" do
  login(:alumnus)

  it "should deny access" do
    get :index
    response.should redirect_to(destroy_user_session_path)
  end

end

Se eu não especificar o atributo "source", tudo funcionará bem, mas assim que eu faço, recebo um erro assim ao executar o teste

  12) UsersController for non-admins or managers should deny access
 Failure/Error: Unable to find matching line from backtrace
 NoMethodError:
   undefined method `source=' for #<User:0x00000100e256c0>

Posso acessar o atributo sem problemas no console do rails e no próprio aplicativo, e ele está listado em meu attr_accessible no modelo de usuário. É quase como se o Rspec estivesse vendo uma versão antiga do meu modelo e não reconhecendo que eu adicionei um atributo a ele. Mas se eu colocar a seguinte linha no meu modelo de usuário, o erro desaparecerá

attr_accessor :source

... o que indica para mim que ele está realmente olhando para o modelo correto.

Socorro!

questionAnswers(2)

yourAnswerToTheQuestion