2015-09-09 3 views
1

Привет, у меня очень простой тест Rspec.Rspec - недействителен без заголовка

Это работало до тех пор, пока я не использовал Factory Girl. Я пробовал так много способов, чтобы это прошло.

Я пробовал пройти через такой же простой тест, как и на 90 минут.

Кто-нибудь знает?

Вот ошибка

1) Size is invalid without a title 
    Failure/Error: let(:size02) { FactoryGirl.create :size02 } 
    ActiveRecord::RecordInvalid: 
     Validation failed: Title can't be blank 

Это испытание

require 'rails_helper' 
    RSpec.describe Size, type: :model do 

    let(:size01) { FactoryGirl.create :size01 } 
    let(:size02) { FactoryGirl.create :size02 } 
    let(:size03) { FactoryGirl.create :size03 } 

    it "should have a matching title" do 
     expect(size01.title).to eq("XXLarge") 
    end 

    it "is invalid without a title" do 
     expect(size02).to be_invalid 
    end 

end 

завод Девочка

FactoryGirl.define do 

    factory :size01, :class => Size do 
     title "XXLarge" 
    end 

    factory :size02, :class => Size do 
     title "" 
    end 

    factory :size03, :class => Size do 
     title "XXLarge" 
    end 

end 

ответ

1

Factory Девочка не может создать экземпляр size02, потому что он не имеет названия, и поэтому инвалид. Попробуйте build вместо create, если вам не нужна настойчивость в тесте:

let(:size02) { FactoryGirl.build :size02 } 
+0

что работал спасибо. Я посмотрю сборку. Посмотрите, что он делает. – joeyk16

+0

Сделайте это, это важная разница. Не создавайте резервную копию базы данных и, следовательно, намного быстрее. Если база данных не важна для вашего тестового примера, вы должны пойти со сборкой. –

+0

также проверить build_stubbed – madcow

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