目前我正在学习YouTube视频Efficient Rails Test Driven Development - by Wolfram Arnold 一个练习是:
Person对象有一个可选的middle_name。
我创建了一个迁移,将中间名添加到数据库
我写了一个规范
它“可以有一个中间名”
但我不知道如何测试这个问题 我该如何测试可选字段
感谢您的帮助
Bulleric
答案 0 :(得分:1)
要说属性是“可选的”,意味着当属性为nil
时实例有效。所以:
it "does not require a middle name" do
@person = Person.new
@person.valid?
@person.errors[:middle_name].should_not include("can't be blank")
end
如果你正在使用shoulda,那么这可以更简单:
describe Person do
it { should_not validate_presence_of(:middle_name) }
end
答案 1 :(得分:0)
假设您正在使用Factor_girl,请创建两个工厂
person1 = Factory.create(:person, :first_name=> "A")
person2 = Factory.create(:person, :first_name=> "A", :middle_name => "M")
现在,在您的测试中,显示person1
和person2
都会保存到数据库中。
如果你没有使用factory_girl,你可以对灯具做同样的事情。