2010-09-24 2 views
0

От http://github.com/diaspora/diaspora/blob/master/spec/models/profile_spec.rbПочему этот тест в приложении диаспоры не проходит?

describe Profile do 
    before do 
    @person = Factory.build(:person) 
    end 

    describe 'requirements' do 
    it "should include a first name" do 
     @person.profile = Factory.build(:profile,:first_name => nil) 
     @person.profile.valid?.should be false 
     @person.profile.first_name = "Bob" 
     @person.profile.valid?.should be true 
    end 
    end 
end 

Но в http://github.com/diaspora/diaspora/blob/master/app/models/profile.rb проверяется на presense обоих, на имя и фамилию, как так validates_presence_of :first_name, :last_name

Почему выше тест проходит, даже если последнее имя не указано?

ответ

0

Я подозреваю, что Factory.build(:profile, ...) вызов создает модель профиля с дефолту first_name и last_name набор, если не указано иное (по :first_name => nil в данном примере).

Однако это всего лишь образованное предположение, которое я выводил из кода выше и того, что я вижу here.

+0

Избили меня к нему. :) – randomguy

1

last_name Фактически указано. Профиль создать с помощью Factory.build, который возвращает предопределенный макет из :profile, который

Factory.define :profile do |p| 
    p.first_name "Robert" 
    p.last_name "Grimm" 
end 
+0

Спасибо за подтверждение моей догадки :) –

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