2
有没有人知道在不同的环境下运行同一组测试的好方法。这是一个荒谬的例子,想用两种不同的设置来运行相同的测试。我不想重复相同的测试,所以我可以有不同的设置。用不同的设置多次运行相同的测试
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
这很有效,但我很难将该过程移动到上下文中,所以我的测试不会混乱。一旦我将proc移动到上下文中,我无法弄清楚如何在merge_block语句中引用它。你知道我的意思? –
是的,我知道你的意思。因为它需要是一个类方法,所以它必须在上下文之外。你可能可以在上下文中设置一个变量作为Proc并将其合并,而不是将其定义为返回Proc的方法。它可能仍然看起来有点混乱。 – Shadwell