Wie Jackson Jackson JsonSerializer und JsonDeserializer Unit-Test
Habe ich geschrieben benutzerdefinierte JsonSerializer und JsonDeserializer für meine app.
Jetzt möchte ich das schreiben eines unit-tests für Sie.
Wie sollte eine saubere test-Fall Aussehen?
Gibt es einige saubere Beispiele gibt?
(sauber bedeutet, dass keine Abhängigkeiten zu anderen frameworks oder Bibliotheken)
InformationsquelleAutor der Frage gue | 2014-02-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
JsonSerializer
Beispiel ist serialising eine
LocalDateTime
dies kann aber ersetzt durch den benötigten Typ um.JsonDeserializer
Beispiel ist deserialising eine
Number
dies kann aber ersetzt durch den benötigten Typ um.UPDATE
Beim Upgrade zu jackson 2.9.3 erhielt ich einen
NullPointerException
imDeserializationContext
imisEnabled(MapperFeature feature)
wenn deserialising strings zu zahlen, weilnew ObjectMapper()
initialisiert_config
zunull
.Zu umgehen, habe ich diese SO beantworten, um Spion auf der
final
KlasseDeserializationContext
:Ich meine, es muss einen besseren Weg geben, so bitte kommentieren, wenn Sie eine haben.
InformationsquelleAutor der Antwort Robert Bain
Einen deserializer kann sein Gerät getestet wie diese:
InformationsquelleAutor der Antwort Emil Lunde
Habe ich einen Weg gefunden, um unit-test der Deserializers, war schon einige Mühe herauszufinden. Haben Sie einen Blick auf meine repo https://bitbucket.org/arbeitsgruppedenktmit/de.denktmit.rest.hal
Den unit-test-Klasse ist hier:
de.denktmit.rest.hal /src /test /java /de /denktmit /rest /hal /jackson /RelationDeserializerTest.java
Einen integration-test, für die Prüfung der Deserializer im Kontext finden Sie hier:
de.denktmit.rest.hal /src /test /java /de /denktmit /rest /hal /OrderResourceIntegrationTest.java
EDIT wegen Kommentar
Basisklasse-mapper, um das setup für die einfache unit-Tests
Die test-Klasse enthält die unit-tests
Die Klasse unter test
Hoffe, das hilft und beste Grüße
InformationsquelleAutor der Antwort Marius Schmidt
Finde ich das nicht jedes Beispiel, aber Sie können versuchen, einen generator erzeugen wie :
und Sie können eine
SerializerProvider
Instanz mitInformationsquelleAutor der Antwort herau