Mongodb testen bzw mocken

Raphael_

Aktives Mitglied
Hi,
ich habe eine monogdb Datenbank und ein Spring Boot backend. Mit der Mongodb kommuniziere ich mithilfe eines mongo repositorys. Dabei schreibe ich Daten in die Mongodb. Wie teste ich diesen Vorgang jetzt am besten? Kann ich das über das Repository machen, also die Funktion aufrufen und dann verifyen, ob es eine interaction gibt? Ich weiß, dass es dafür auch frameworks, wie flapdoodle gibt, aber flapdoodle wird ja mit der neuen Spring Boot Version nicht mehr unterstützt.
Also was ist da der best practice?
 
Ok,
danke für den Link, mein Problem ist, dass mir das mit Repository und Datenbank nicht ganz klar ist. Angenommen ich mocke mein Repository einfach, führe dann den Test darauf aus und check dann, ob das reposirtory leer ist. Habe ich dann getestet, ob die Kommunikation zwischen meine Anwendung und der Mongodb funktioniert? Eigentlich ja nicht, oder? Wie mache ich das dann?
 
Wenn du testen willst, ob die Verbindung zur MongoDB Funktioniert, ist es fraglich, ob du das per Unit-Test machen kannst/willst.

Mocken darfst du da natürlich nichts. Das heißt, du musst da einen Spring-Boot Test schreiben, der gleichzeitig auch eine MongoDB Instanz hochfährt (ich vermute nicht, dass das in Memory geht). Das geht über den Scope eines Unit-Tests deutlich heraus. Was willst du damit denn am Ende verifizieren? Das Spring Boot mit einer MongoDB arbeiten kann? Kann man machen - aber da ist es legitim sich drauf zu verlassen, das Spring Boot das unterstützt.
Oder willst du testen, dass User & Passwort etc. alles richtig sind? Dann ist es kein Unit-Test, sondern kann nur in der echten Anwendung getestet werden - denn du wirst ja nicht in deiner Anwendung hart User & Passwort hinterlegen. Die gehören in Konfigurationsdaten und sind je nach dem wo man die Anwendung betreibt ja auch unterschiedlich.

Oder willst du testen, dass du Daten in die Datenbank schreiben und lesen kannst? Dann nimm einen Spring Boot Test - der hat aber dann keine MongoDB darunter, sondern eine In-Memory Datenbank (Normalerweise H2, aber ich weiß nicht ob man das als Ersatz für die mongoDB nehmen kann)
 

Neue Themen


Zurück
Oben