Я пишу несколько помощников, чтобы высушить мои тесты.Я изобразил что-то вроде:
class ActiveSupport::TestCase
def self.test_presence_validation_of model, attribute
test "should not save #{model.to_s} with null #{attribute.to_s}", <<-"EOM"
#{model.to_s} = Factory.build #{model.to_sym}, #{attribute.to_sym} => nil
assert !#{model.to_s}.save, '#{model.to_s.capitalize} with null #{attribute.to_s} saved to the Database'
EOM
# Another one for blank attribute.
end
end
Так что это:
class MemberTest < ActiveSupport::TestCase
test_presence_validation_of :member, :name
end
Выполняет именно это в MemberTest
область видимости класса:
test 'should not save member with null name' do
member = Factory.build :member, :name => nil
assert !member.save, 'Member with null name saved to the Database'
end
Возможно лисделать это таким образом (конечно, с некоторыми изменениями; я сомневаюсь, что моя «картинка» работает), или я должен использовать class_eval
?