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