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.