【发布时间】:2010-10-20 02:32:09
【问题描述】:
在一堆 rspec rails 单元规范中,我执行以下操作:
describe Foo do
[:bar, :baz].each do |a|
it "should have many #{a}" do
Foo.should have_many(a)
end
end
end
为了更简洁的代码,我宁愿做这样的事情:
describe Foo do
spec_has_many Foo, :bar, :baz
end
那么我该如何编写像spec_has_many() 这样的辅助方法来插入像rspec 的it() 方法这样的DSL 代码呢?如果是普通的实例方法,我会这样做:
def spec_has_many(model, *args)
args.each do |a|
define_method("it_should_have_many_#{a}") do
model.should have_many(a)
end
end
end
定义 rspec 示例的等价物是什么?
【问题讨论】:
标签: ruby rspec helpermethods