sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man gör korrekt databastestning (TDD) på Rails 3 med MongoDB och Mongoid

Ok tack till Kyle som pekade mig i rätt riktning, jag fick reda på hur man får det att fungera.

Så i princip är tricket att släppa alla dina samlingar i mongodb för varje testfall du kommer att köra. Det här är lite radikalt, men det fungerar. Men tänk på att du inte kommer att behålla någon data alls i din testdb.

Äntligen hittade jag den länken:http://adventuresincoding.com/2010/07/how-to-configure-cucumber-and-rspec-to-work-with-mongoid

Och i grund och botten vad du behöver göra är enkelt:

lägg till ett block i din spec_helper.rb:

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

Detta dödar effektivt all samling i db så att du kan köra dina tester varje gång.

Alex



  1. Stöder Moongoose 3.8.8 $position operator?

  2. Aggregation i kolv-mongomotor

  3. Hur konverterar man Date till UTC i MongoMapper &Ruby/Rails?

  4. Redis-anslutning till 127.0.0.1:6379 misslyckades - anslut ECONNREFUSED