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 回答