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では、姓と名の両方の存在が検証されています。validates_presence_of :first_name, :last_name

姓が指定されていないにもかかわらず、上記のテストがパスするのはなぜですか?

4

2 に答える 2

1

last_name実際に指定されています。プロファイルは を使用して作成Factory.buildされ、定義済みの のモックを返します:profile

Factory.define :profile do |p|
  p.first_name "Robert"
  p.last_name "Grimm"
end
于 2010-09-24T15:20:30.093 に答える
0

別の方法で指定されていない限り (この例では によって)、この呼び出しはデフォルトとセットFactory.build(:profile, ...)を使用してプロファイル モデルを作成すると思われます。first_namelast_name:first_name => nil

ただし、これは、上記のコードとここに表示されている内容から推測した、経験に基づいた推測にすぎません。

于 2010-09-24T15:19:37.007 に答える