Ok, danke an Kyle, der mich in die richtige Richtung gewiesen hat, ich habe herausgefunden, wie es funktioniert.
Der Trick besteht also im Grunde darin, alle Ihre Sammlungen für jeden Testfall, den Sie ausführen, in Mongodb abzulegen. Das ist ein bisschen radikal, aber es funktioniert. Aber denken Sie daran, dass Sie überhaupt keine Daten in Ihrer Testdatenbank behalten werden.
Endlich habe ich diesen Link gefunden:http://adventuresincoding.com/2010/07/how-to-configure-cucumber-and-rspec-to-work-with-mongoid
Und im Grunde ist das, was Sie tun müssen, einfach:
füge einen Block in deiner spec_helper.rb hinzu:
RSpec.configure do |config|
# blabla other confs
config.before :each do
Mongoid.master.collections.select {|c| c.name !~ /system/ }.each(&:drop)
end
# blabla other confs
end
Für Mongoid 3:
Mongoid.default_session.collections.select {|c| c.name !~ /system/ }.each(&:drop
Dadurch wird effektiv die gesamte Sammlung in der Datenbank gelöscht, sodass Sie Ihre Tests jedes Mal neu ausführen können.
Alex