2010-09-24 5 views
0

De http://github.com/diaspora/diaspora/blob/master/spec/models/profile_spec.rbPourquoi ce test dans l'application Diaspora échoue-t-il?

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 

Mais http://github.com/diaspora/diaspora/blob/master/app/models/profile.rb est validé le presense des deux, le premier et le dernier nom comme si validates_presence_of :first_name, :last_name

Pourquoi le test ci-dessus passe même si un nom de famille n'est pas spécifié?

Répondre

0

je soupçonne que l'appel Factory.build(:profile, ...) crée un modèle de profil avec un défaut first_name et last_name ensemble, sauf indication contraire (par le :first_name => nil dans cet exemple).

Cependant c'est juste une supposition que je déduis du code ci-dessus et ce que je vois here.

+0

me devança. :) – randomguy

1

last_name est effectivement spécifié. Le profil est de créer à l'aide du Factory.build, qui retourne la maquette prédéfinie de :profile, qui est

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

Merci de confirmer ma conjecture :) –

Questions connexes