我正在写一些帮手来干燥我的测试。我描绘了类似的东西:
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
?