Java - wyświetlenie wartości na ekran

0

Czy istnieje jakiś cudowny sposób albo jakie są alternatywy. Dajmy na to mam jakiś wynik zwrócony z mapowania. Czy da się jakoś wyświetlić takie dane w formacie json? do testowania
Szczególnie jeśli taka klasa nie ma zaimplementowanego toString to nie zobacze wartości.

0

Refleksja pozwala przejrzeć programistycznie wszystkie pola w danym obiekcie.
Są też metody serializacji klas (np. JAXB), które pozwalają stosunkowo łatwo zamienić obiekt (edit: drzewo obiektów) na JSON/XML.

https://www.oracle.com/technical-resources/articles/java/javareflection.html
zob. Finding Out About Class Fields

https://examples.javacodegeeks.com/core-java/xml/bind/jaxb-json-example/

0

Pytanie do jakiego testowania? Do unit testu to nie będzie najlepszy sposób jeżeli klasa sama ukrywa swój stan. Lepiej skorzystać z istniejącego API klasy i testować klasę na podstawie zachowania. Bieda alternatywa to zmiana metody na public/package (warto oznaczyć przez @VisibleForTesting z Guavy) i dobieranie się do stanu obiektu w taki sposób.

Inny przypadek użycia to porównanie 2 DTO w unit teście, czasami robi się assertEquals(toJson(dtoactual), toJson(dtoExpected)), jest to nieco lepsze niż assertEquals(dtoActual, dotExpected) bo widzisz które pola się nie zgadzają. Ale większość porządnych frameworków takich jak assertJ posiada zabawki które poradzą sobie i bez equals i pokażą co się nie zgadza (isEqualToComparingFieldByFieldRecursively).

1 użytkowników online, w tym zalogowanych: 0, gości: 1