У меня есть модель пользователя
class User < ActiveRecord::Base
has_many :languages, :dependent => :destroy
accepts_nested_attributes_for :languages, :reject_if => lambda { |l| l[:name].blank? }
end
Я хочу протестировать часть reject_if с помощью RSpec 2.0.0. В настоящее время у меня есть два простых тестовых примера для этого
it "should not save language without name by accepts_nested_attributes" do
lambda {
@user.update_attributes!("languages_attributes"=>{"0"=>{}})
}.should_not change(Language, :count)
end
it "should save language with name by accepts_nested_attributes" do
lambda {
@user.update_attributes!("languages_attributes"=>{"0"=>{"name"=>"lang_name"}})
}.should change(Language, :count).by(1)
end
Однако я новичок в тестировании, и это выглядит действительно странно, imho. Интересно, правильный ли это способ проверить reject_if? А есть ли способ сделать это лучше?