MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie man richtige Datenbanktests (TDD) auf Rails 3 mit MongoDB und Mongoid durchführt

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