Я запускаю before do
в начале моих тестов.Я бы хотел, чтобы этот before to
был выполнен один раз перед выполнением моих тестов.Однако в данный момент он выполняется перед каждым тестом:
context "worker has failed first time and has generated only part of licenses" do
before do
order.already_went_through_license_worker = true
order.save!
order.pre_calculate_licenses
partial_generate_from_bundles(order.expected_license_bundles)
LicenseService.new.create_from_order(order.id)
end
let!(:licenses){ License.where(order_id: order.id)}
specify { subject.count.should == 34 }
specify { subject.pluck(:is_from_offer_special).count(true).should == 4}
specify { subject.pluck(:is_from_offer_special).count(false).should == 30 }
specify { subject.pluck("license_offer.offer_original_id").compact.map(&:values).flatten.count(offer.id).should == 30}
specify { subject.pluck("license_offer_special.offer_special_original_id").compact.map(&:values).flatten.count(offer_special_cyclic.id).should == 3}
specify { subject.pluck("license_offer_special.offer_special_original_id").compact.map(&:values).flatten.count(offer_special_non_cyclic.id).should == 1 }
end
Когда я изменяю его на before (: all), я получаю сообщение об ошибке:
let declaration `order` accessed in a `before(:context)` hook at:
Как я могу сделать доблок запускается только один раз.