2015-05-15 29 views
6

Mam zakres, w którym stosuję się do obiektu Mongoid w szynach, który działa dobrze podczas projektowania, ale nie podczas testów. W rzeczywistości nie sprawdza się w testach. To jest dokument osadzony.rspec Zakres mongoid działa w fazie rozwoju, a nie w testach.

Rodzic:

class Person 
    include Mongoid::Document 
    def self.with_appointments 
    where(:appointments.not => { '$size' => 0 }) 
    end 
    embeds_many :appointments, store_as: 'Appointments', class_name: 'Appointment' 
end 

Wbudowany dziecko:

class Appointment 
    include Mongoid::Document 
    embedded_in :person 
end 

Kiedy uruchomić testy przeciwko mojego modelu zwraca osób czy mają terminów lub nie. Jeśli uruchomię to samo z moim kontrolerem podczas tworzenia w oparciu o bazę danych, odfiltrowuje ona ludzi z pustymi spotkaniami.

Czego mi brakuje?

Przed prosząc mnie, aby zmienić konfigurację bazy danych -

  1. Nie mam kontroli nad strukturą danych
  2. Załóżmy nawet nie mieć dostęp do bazy danych
+0

można dodać fragment swojego kodu testowego i rozwoju? w tym konfiguracja – Gashaw

+0

Czy jest coś szczególnego, czym jesteś zainteresowany? Kod testowy i rozwojowy oraz cała konfiguracja z pewnością będzie ogromną ścianą kodu, więc może jest coś bardziej konkretnego? –

+0

Chciałbym zatrzymać test za pomocą Pry i sprawdzić bazę danych. Upewnij się, że zapisy są rzeczywiście utrwalone? Porównaj zapisy w obrębie każdej kolekcji, aby sprawdzić, czy są one takie same, jak oczekujesz. Pomoże w tym niektóre z kodu źródłowego testu. –

Odpowiedz

0

Sprawdź Twój GemFile, założę się, że Mongoid jest gotowy do pracy tylko w fazie rozwoju:

Spróbuj zmienić to

gem 'mongoid', group: :development 

do tego

gem 'mongoid'