У меня есть процесс, который возвращает набор результатов, который я хочу проверить на валидность с помощью rspec. Процесс будет возвращать разные результаты на основе параметров, но есть много примеров, которые являются общими для всех из них, поэтому я хотел бы создать набор общих примеров, которые я могу выполнить против всех из них.Передача параметров в общий пример rspec
Я знаю, что предпочтительной практикой является использование, позволяющее построить результат. Проблема в том, что каждый процесс занимает минуту или две, чтобы создать результат, и у меня есть, вероятно, 30 примеров. Со всеми перестановками, основанными на разных параметрах, я запускаю около 500 примеров. Если мне пришлось перестроить результат для каждого примера, тест продлится более суток.
Так вместо этого я строю результат в ранее (: все) блока и назначение его в атрибуте что-то вроде этого:
RSpec.describe 'Test Description' do
attr_reader :result
before(:all)
@result = build_result({some_parameters})
end
context 'Some context' do
it 'Looks lik a result' do
expect(result.something).to ...
end
it 'Feels lik a result' do
expect(result.something).to ...
end
end
end
Может быть, есть лучший способ, чем с помощью атрибута. Я хочу сделать что-то вроде этого:
RSpec.describe 'Test Description' do
attr_reader :result
before(:all)
@result = build_result({some_parameters})
end
context 'Some context' do
it_behaves_like "A result" result
end
end
Использование атрибута в этом контексте не выполняется. Есть ли другой способ сделать это?
Это не то, на что я надеялся, но это лучший ответ. –