happy-hamster / backend

RESTful Spring Boot API
https://api.happyhamster.org
Apache License 2.0
2 stars 0 forks source link

TINF-324: Integration Test #151

Closed jstsddg closed 4 years ago

jstsddg commented 4 years ago

Hallo zusammen, ich habe mich mal daran versucht einen Integration Test zu schreiben. Es funktioniert und nur die Token Validation Methode ist gemockt. Ich habe auch ein paar Hilfsmethoden geschrieben, bin aber mit dem Test noch nicht zufrieden, weil der einfach Gigantisch ist... Habt ihr Ideen?

Wichtig: Dieser PR implementiert noch nicht direkt TINF-342, da er auf develop und nicht auf story/TINF-243gemergt werden soll :)

jstsddg commented 4 years ago

Okay... Jetzt bin ich gerade überfragt.. Lokal kann es compilieren und die Tests laufen durch...

jstsddg commented 4 years ago

MockMvc ist wohl nicht "the way to go": https://github.com/spring-projects/spring-boot/issues/5574#issuecomment-419481530

jstsddg commented 4 years ago

Ich habe rest-assured nicht zum laufen bekommen:

ava.lang.AbstractMethodError: Receiver class io.restassured.internal.ResponseParserRegistrar does not define or inherit an implementation of the resolved method 'abstract java.lang.Object getProperty(java.lang.String)' of interface groovy.lang.GroovyObject.
    at de.sakpaas.backend.v2.controller.LocationControllerGetLocationByIdTest.testRestAssured(LocationControllerGetLocationByIdTest.java:31)
jstsddg commented 4 years ago

Auch WebTestClient habe ich nicht hinbekommen.

Dann bleibt es beim MockMvc, der einzige Nachteil ist hier, dass die Error Antworten nicht getestet werden können. Wenn es dennoch jemand schafft, nur zu!

jstsddg commented 4 years ago

@SAKPaaS/backend Die Tests schlagen fehl weil der DELETE /v2/users/self/favorites/{id} Endpoint im Ergebnis die favorite-Flag nicht auf false setzt. Hat da jemand eine Idee wieso?

DavidSchmidt00 commented 4 years ago

Sieht auf den ersten Blick gesund aus ^^ Aber nur zum Verständnis, die werden nur in der Int-Umgebung ausgeführt oder wie? Weil die ja auf die DB zugreifen

DavidSchmidt00 commented 4 years ago

Und nochmal die altbekannte Frage: Loht sich dieser Aufwand für unser kleines kack-projekt? ^^

jstsddg commented 4 years ago

@DavidSchmidt00 Diese Integration Tests laufen in einer Datenbank die für jeden Test erstellt wird, also die laufen in keiner Umgebung.

Und naja, ab jetzt ist es ja einfach nur kopieren, man lernt ja auch etwas dabei :P