MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come eseguire correttamente il test del database (TDD) su Rails 3 utilizzando MongoDB e Mongoid

Ok, grazie a Kyle che mi ha indicato la giusta direzione, ho scoperto come farlo funzionare.

Quindi, in pratica, il trucco è eliminare tutte le tue raccolte in mongodb per ogni test case che eseguirai. Questo è un po' radicale, ma funziona. Ma tieni presente che non conserverai alcun dato nel tuo db di prova.

Alla fine ho trovato quel link:http://adventuresincoding.com/2010/07/how-to-configure-cucumber-and-rspec-to-work-with-mongoid

E fondamentalmente quello che devi fare è semplice:

aggiungi un blocco in te 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

Per Mongoid 3:

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

Questo uccide efficacemente tutta la raccolta all'interno del db permettendoti di eseguire i tuoi test ogni volta.

Alessio