Ошибка тестов Rspec для Ruby Thread
У меня есть рабочий метод, который выглядит так
class ScoreWorker
include Sidekiq::Worker
sidekiq_options queue: 'score_worker'
def perform(scores, notification, devices)
threads = []
scores.each do |gg|
threads << Thread.new { PushNotificationService.new(notification, devices).deliver }
end
threads.each { |thr| thr.join }
end
Я пишу тест rspec для своего рабочего
describe ScoreWorker do
self.use_transactional_fixtures
before(:all) do
Rails.cache.clear
end
describe '.perform' do
self.use_transactional_fixtures
context 'create' do
it 'creates notification' do
job = create(:job)
notification = create(:notification)
devices = create(:device)
scores = ScoringService.new(job, 25).score
worker = ScoreWorker.new
expect do
worker.perform(scores, notification, devices)
end.to change(Notification, :count).by(1)
end
end
end
end
Но всякий раз, когда я запускаю свои тесты, он продолжает давать сбой, поскольку rspec, похоже, не поддерживает многопоточность. Итак, мои объекты "Работа", "Уведомления" и "Устройства" пусты.
Как я могу запустить свои тесты при использовании рубиновых потоков в rspec