sql >> Database >  >> NoSQL >> MongoDB

Hoe de juiste databasetest (TDD) op Rails 3 uit te voeren met MongoDB en Mongoid?

Oké, dankzij Kyle die me in de goede richting heeft gewezen, heb ik ontdekt hoe ik het kan laten werken.

Dus eigenlijk is de truc om al je collecties in mongodb te laten vallen voor elke testcase die je gaat uitvoeren. Dit is een beetje radicaal, maar het werkt. Houd er echter rekening mee dat u helemaal geen gegevens in uw test-db bewaart.

Eindelijk vond ik die link:http://adventuresincoding.com/2010/07/how-to-configure-cucumber-and-rspec-to-work-with-mongoid

En eigenlijk is wat u moet doen eenvoudig:

voeg een blok toe aan je 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

Voor mongoïde 3:

 Mongoid.default_session.collections.select {|c| c.name !~ /system/ }.each(&:drop

Dit doodt effectief alle verzamelingen in de db, zodat u uw tests elke keer vers kunt uitvoeren.

Alex



  1. Documenten samenvoegen met de geneste arrays en hun geneste arrays

  2. Hoe de vervaldatum van de hash-sleutel in redis in te stellen op basis van het bestaan ​​van de sleutel

  3. Laravel Redis-configuratie

  4. hoe deze transactiefout in mlab op te lossen? [MongoError:Transactienummers zijn ... ondersteunen vergrendeling op documentniveau]