2016-04-25 4 views
1

Ich erstelle MongoDB-Abfragen mit der Filters-API.Wie testet man die Gleichheit von MongoDB Filtern (BSON) in Java/Groovy?

Bson r1 = Filters.and(Filters.eq("a","b"), Filters.eq("c","d")) 
Bson r2 = Filters.and(Filters.eq("a","b"), Filters.eq("c","d")) 

Aber wie kann ich das Ergebnis auf Gleichheit prüfen? Zum Beispiel:

r1.equals(r2) 

und

r1.dump().equals(r2.dump()) 

funktionieren nicht.

+0

Gerade sei klar, du fragst nach etwas wie "Unit Tests" wie man sieht ob man de Abschluss ist der gleiche wie ein anderer? Haben Sie sich die Fahrertests in einer beliebigen Sprache angesehen? Das sollte Ihnen einen ziemlich guten Hinweis darauf geben, wie dies für ihre eigenen Komponententests gemacht wird. Auch wundern Sie sich, warum Sie sich die Mühe machen würden, da dies genau die Art von "Unit Testing" ist, die wirklich die Domäne des "Treibers" ist und nicht wirklich für Ihre Anwendung. –

+0

@BlakesSeven Die Methode, die ich testen möchte, verwendet die Filter-API, um (mehr oder weniger komplexe) Filterabfragen zu generieren. Ich möchte testen, ob die Methode die richtige Ausgabe gemäß den Parametern erzeugt, die sie benötigt. – Edward

+0

Verstanden. Aber der große Grundhinweis war: "Sieh dir an, wie die Treiber es tun" *, da dieser Code leicht zugänglich ist. Jeder einzelne Sprachtreiber tut dies auf die gleiche Weise, indem er im Grunde eine erwartete Datenstruktur aufweist und dann die Methoden verwendet, um das "Standardformular" dieser Datenstruktur aus der konstruierten Abfrage auszugeben, um zu sehen, ob sie identisch sind. Java/Groovy hat keine "native" Datenstrukturnotation. Sie haben jedoch BSON Document-Objekte, mit denen Sie arbeiten können. –

Antwort