Bir testte bir yarış durumunu yeniden oluşturmaya çalışıyorum, bu yüzden bazı çözümleri deneyebilirim. Bunu sınamada oluşturduğum iş parçacıklarında, ActiveRecord her zaman sayım için 0 değerini döndürür ve bulur. Örneğin, tablodaki 3 satır "Foo'larınız" ile:rspec'te çok iş parçacıklı ActiveRecord istekleri
it "whatever" do
puts Foo.count
5.times do
Thread.new do
puts Foo.count
end
end
end
,
3
0
0
0
0
0
test.log beklenen sorgu gösterir yazdırılır beklenen 6 kez:
SELECT count(*) AS count_all FROM `active_agents`
Herhangi fikir burada neler oluyor?
Jeem'in tanımlamasıyla aynı problemi yaşadım ve @ henning-koch'un çözümü benim için çözdü. Yukarıdaki çözümüne kod ekledim (bir başkası tarafından kabul edilmesi gerekiyor). –
Çok hoş bir numara! –