У меня есть модель пользователя
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
Однако я довольно новичок в тестировании, и это выглядит очень странно.
Интересно, это правильный способ проверить reject_if? И есть ли лучший способ сделать это?