のShoulda
マクロ:http://mediumexposure.com/testing-acceptsnestedattributesfor-shoulda-macros/があります。どんなオプションもサポートしていません(:reject_if
など)。accepts_nested_attributes_for
のみです。
:reject_if
の場合、User
のネストされた属性を持つが、:name
を含まない有効なグリーティングモデルを作成できます。その後、ユーザーが保存されているかどうかを確認し、:email
空白と同じだから、あなたはこのような何か行うことができます。
:
describe Greeting
it { expect { Factory(:greeting, :user_attributes => Factory_attributes_for(:user)) }.to change(User, :count).by(1) }
it { expect { Factory(:greeting, :user_attributes => Factory_attributes_for(:user, :name => '')) }.to_not change(User, :count) }
it { expect { Factory(:greeting, :user_attributes => Factory.attributes_for(:user, :email => '')) }.to_not change(User, :count) }
end
はい、それは動作します:) – AnkitG