有没有人知道在不同的环境中运行同一组测试的干燥方法。这是一个荒谬的例子,希望用两种不同的设置运行相同的测试。我不想重复相同的测试,因此我可以有不同的设置。
context 'cat' do
setup do
@object = cat
....
end
should 'walk' do
assert @object.walk?
...
end
should 'run' do
assert @object.run?
...
end
end
context 'dog' do
setup do
@object = dog
....
end
should 'walk' do
assert @object.walk?
...
end
should 'run' do
assert @object.run?
...
end
end
答案 0 :(得分:3)
我以前用merge_block
做过。在测试中定义一个类方法,返回Proc
你的应用程序,然后在适当的地方合并它。
def self.walk_and_run
Proc.new do
should 'walk' do
assert @object.walk?
end
should 'run' do
assert @object.run?
end
end
end
context 'cat' do
setup do
@object = cat
end
merge_block(&walk_and_run)
end
context 'dog' do
setup do
@object = dog
end
merge_block(&walk_and_run)
end