Rspec-Tests schlagen beim Analysieren von ActiveRecord-Objekten, die von mongoiden Ereignissen generiert wurden, nach dem Zufallsprinzip fehl

Ich habe einen auf Mongoid basierenden Aktivitätsprotokollierungsmechanismus implementiert, der Ereignisse in MongoDB speichert.

Das mongoide ModellActivity hatafter_create Ereignisse, die je nach Art der protokollierten Aktivität unterschiedliche Aufgaben ausführen: (Vereinfachtes Beispiel)

class Activity
  include Mongoid::Document

  after_create do |activity|
    method_name = "after_#{activity.event_type}"
    send(method_name) if respond_to? method_name
  end

  def after_user_did_something
    MyItem.create!(:type => :user_did_something)
  end
end

Der Test sieht folgendermaßen aus:

 it 'should hide previous [objects] create a new updated one' do
      2.times do 
        user.log_activity(:user_did_something) 
      end
      items = MyItems.where(:type => :user_did_something)
      items.count.should == 2
    end
 end

Manchmal schlagen die Tests fehlitems.count 0 anstelle von 2. Dies geschieht nur, wenn von der Befehlszeile aus ausgeführt wirdrspec spec Dies geschieht niemals, wenn nur dieser Test ausgeführt wird oder wenn alle Tests mit Guard ausgeführt werden.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage