有谁知道在不同上下文中运行同一组测试的好方法。这是一个荒谬的例子,想要使用两种不同的设置运行相同的测试。我不想重复相同的测试,这样我就可以有不同的设置。
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
最佳答案
我之前用 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
关于ruby-on-rails - 使用不同的设置多次运行相同的测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13076518/