Я хочу выполнить некоторые перед кодом и протестировать результат с помощью нескольких операторов it без необходимости запуска кода перед.
context 'context A' do
context 'context A.1' do
before(:each) do
# Doing a lot of things and using let variables,...
end
it 'T1: test thing 1'
it 'T2: test thing 2'
it 'T3: test thing 3'
end
context 'context B.1' do
before(:each) do
# Doing a lot of things and using let variables,...
end
it 'T1: test thing 1'
it 'T2: test thing 2'
it 'T3: test thing 3'
end
end
Если вы посмотрите на исполнение, оно выглядит примерно так:
до A.1 - T1 - до A.1 - T2 - до A.1 - T3 -до B.1 - T1 - ...
Но я хочу:
до A.1 - T1 - T2 - T3 - до B.1 - T1 -T2 - T3
Я пытался использовать before (: all), но я не могу его использовать, потому что я использую много переменных let.Вы получаете следующую ошибку, потому что let должен меняться в каждом контексте.
RuntimeError: let объявление var1
, доступ к которому осуществляется через before(:context)
hook:
Я мог бы объединитьвсе тесты в одном операторе it, но я не хочу этого, я хочу увидеть, какой тест paricalur не пройден.Единственное решение, которое я вижу, - это избавиться от всех переменных let, но это приведет к массивному блоку переменных экземпляра и множеству различных тестовых файлов, что приведет к большому количеству дублирующегося кода ...
Можетя получаю поведение, которое я хочу по-другому?Или я должен смотреть на вещи по-другому?