Caso seus models não tenham representação no banco ou não seja ActiveResource, você precisará mudar umas coisinhas para fazer o rspec e rspec-rails funcionar. Este post se refere a: rails 2.3.2, rspec 1.2.2, rspec-rails 1.2.2, mas deve funcionar com algumas versões anteriores.
O primeiro passo é desabilitar o framework ActiveRecord no arquivo config/environment.rb
# config/environment.rb Rails::Initializer.run do |config| config.frameworks -= [:active_record, :active_resource] # outras configuracoes aqui end
Agora voce deve deletar o arquivo config/database.yml e comentar as seguintes linhas do arquivo spec/spec_helper.rb
# spec/spec_helper.rb Spec::Runner.configure do |config| # config.use_transactional_fixtures = true # config.use_instantiated_fixtures = false # config.fixture_path = RAILS_ROOT + '/spec/fixtures/' # nao comente outras configuracoes end
Agora o rspec funcionará numa boa. Você também notará que não conseguirá usar o logger do rails como usava em seus models do ActiveRecord. Para utiliza-lo, basta usar a constante RAILS_DEFAULT_LOGGER. Exemplo:
# app/models/aluno.rb
class Aluno
def ola
RAILS_DEFAULT_LOGGER.info "falando ola mundo"
#PPDD - Passei por aqui driven development
RAILS_DEFAULT_LOGGER.debug "passei por aqui"
"Ola mundo"
end
end
Fica aqui a dica