#ruby-on-rails #rspec #rails-activestorage
#ruby-on-rails #rspec #rails-activestorage
Вопрос:
В моем тесте у меня следующее:
...
let(:image) { Rack::Test::UploadedFile.new('spec/support/assets/test.png', 'image/png') }
subject { described_class.new(gold_bar_order).set_bar_custom_image(image) }
it do
subject
expect(gold_bar_order.reload.bar_custom_image.present?).to be_truthy
end
И вот класс из метода, который я тестирую:
class GoldBarOrderCustomizationUpdater
def initialize(gold_bar_order)
@gold_bar_order = gold_bar_order
end
def set_bar_custom_image(bar_custom_image)
update_values do
@gold_bar_order.bar_custom_image.attach(bar_custom_image)
@gold_bar_order.save!
end
end
...
private
def update_values
ActiveRecord::Base.transaction do
yield
calculator = MasterOrderCalculator.new(@gold_bar_order.master_order)
calculator.recalculate_sub_orders!
calculator.save_values!
end
end
end
Происходит то, что я получаю случайные результаты для описанного теста: если я запускаю его заданное количество раз, он завершается ошибкой или проходит без определенного порядка.
Я не мог понять, почему. Есть предположения?