Ich habe einen Bereich, den ich auf ein Mongoid-Objekt in Schienen anwenden, die in der Entwicklung gut funktioniert, aber nicht, wenn Tests ausgeführt werden. Es funktioniert überhaupt nicht in Tests. Dies ist ein eingebettetes Dokument.rspec Mongoid Scope funktioniert in der Entwicklung nicht in Tests
Die Mutter:
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
Das eingebettete Kind:
class Appointment
include Mongoid::Document
embedded_in :person
end
Als ich Tests gegen mein Modell führen Sie es zurück Personen, ob sie Termine oder nicht. Wenn ich dasselbe von meinem Controller in der Entwicklung gegen die Datenbank laufe, filtert es Leute mit leeren Terminen heraus.
Was fehlt mir?
Bevor mich zu fragen, um die Datenbank-Setup zu ändern -
- Ich habe keine Kontrolle über die Datenstruktur
- Angenommen ich auch keinen Schreibzugriff auf die Datenbank
Können Sie Schnipsel Ihres Test & Entwicklung Code hinzufügen? inklusive Setup – Gashaw
Gibt es etwas besonderes, an dem Sie interessiert sind? Test- und Entwicklungscode sowie das gesamte Setup wären definitiv eine riesige Codewand, vielleicht gibt es etwas Spezifischeres? –
Ich würde den Test mit Pry anhalten und die Datenbank überprüfen. Stellen Sie sicher, dass die Datensätze tatsächlich beibehalten werden? Vergleichen Sie die Datensätze in den einzelnen Sammlungen, um festzustellen, ob sie den erwarteten Ergebnissen entsprechen. Ein Teil des Testquellcodes würde helfen. –