Выполнение одного и того же теста несколько раз с разными настройками
Кто-нибудь знает хороший сухой способ выполнения одной и той же группы тестов в разных контекстах. Вот смехотворный пример желания выполнить одни и те же тесты с двумя разными настройками. Я не хочу повторять одни и те же тесты только для того, чтобы иметь разные настройки.
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
1 ответ:
Я уже делал это с
merge_block
раньше. Определите метод класса в своем тесте, который возвращаетProc
ваших shoulds, а затем объедините его в случае необходимости.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