私はバリデーションをテストする簡単な方法が必要です。テストの焦点は検証ではなく統合です。私はTDDで作業していません。それは言われて、私は交換したい:Rspecのテストバリデーションのための短い方法
# Estate model specs
describe "#name" do
it "is required" do
estate.name = nil
estate.valid?
expect(estate.errors).to have_key(:name)
end
end
describe "#company" do
it "is required" do
estate.company = nil
estate.valid?
expect(estate.errors).to have_key(:company)
end
end
# and so on..
をいくつかのように:
# Estate model specs
requiredFields = [:name, :company, :price, :region, :regions, :typologies, :image]
requiredFields.each do |requiredField|
describe "##{requiredField}" do
it "is required" do
estate[requiredField] = nil
estate.valid?
expect(estate.errors).to have_key(requiredField)
end
end
end
フィールド名と価格の作品、問題が団体である:
Estate
is an instance of Estate
validations
with required fields
should be valid
#name
is required
#company
is required (FAILED - 1)
#price
is required
#region
is required (FAILED - 2)
...
私はと思います問題はestate[requiredField]
です。私がcompany_idに変更すると動作します。 foreachでestate.requiredField
のようなことをするにはどうすればいいですか?