2014-02-06 2 views
0

Основные методы базы данных, такие как «сохранить», которые ранее работали, больше не работают, и я не могу найти существующие вопросы, касающиеся почему.Rspec - функция сохранения не признана

Выполнение комплекта exec rails spec/throws undefined save for nil: ошибка Nilclass для многих местоположений.

с: /RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/example_group.rb: 242: в «module_eval ' c: /RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/example_group.rb: 242: в подклассе c: /RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/rspec-core-2.13.1/lib/rspec/core/example_group.rb:28: в описании и т. Д.

Может ли это из-за несоответствия версии gem?

Мои базы данных тестов и разработки, использующие postgresql, обновлены и полностью перенесены.

Я удостоверился, чтобы

config.include Capybara::DSL 

в моем файле spec_helper.rb.

user_spec.rb 
. 
. 
. 
describe "with mixed case" do 
     let(:mixed_case_email) { "[email protected]" } 
     before { @user.email = mixed_case_email } 

     describe "should be saved as all lower-case" do 
      @user.save 
      expect(@user.email).to eq mixed_case_email.downcase    
     end  

     describe "and that's already taken" do 
       before { user_with_same_email = @user.dup 
          user_with_same_email.email 
          user_with_same_email.save } 
       describe "should be invalid" do      
        it { should_not be_valid } 
       end 
     end    
. 
. 
. 
+1

Вы не можете просто поставить произвольный код в середине кода RSpec. Вам нужно поставить 'user_with_same_email.email; userr_with_same_email.save' в контексте теста. – sevenseacat

+0

Я изменил код на выше. Сохранять неопределенный метод для nil: NilClass все еще происходит. – ahnbizcad

ответ

0

Метод «Сохранить» отлично работает с Rspec. У него есть другая проблема.

 
    describe 'Anything goes here ...' do 
    before do 
     @p = Project.create(:name => 'logtasks') 
     @p.save 
    end 
    it { expect(@p.name).to eq 'logtasks' } 
    end 

Смежные вопросы