J'ai une méthode appelée JsonMarshall(T t)
qui prend un objet et le convertit en chaîne JSON. A l'intérieur de cette méthode que je utilise la Objectmapper
pour accomplir cette tâche:Comment tester JsonMarshaller avec un joli print activé?
mapper.writerWithDefaultPrettyPrinter().writeValueAsString(t)
Maintenant, disons que j'ai une classe ClientName
avec les attributs titre et le nom que j'utilise pour mon test. Maintenant, lorsque je tente de convertir ClientName
en chaîne JSON avec ma méthode et de tester cette méthode en affirmant sa sortie contre une chaîne JSON classiques tels que:
expectedString = "{\"title\":\"RandomTitle",\"Name\":\"RandomName\"}"
Je reçois deux scénarios:
test échoue quand j'utilise
mapper.writerWithDefaultPrettyPrinter().writeValueAsString(t)
dans ma méthode.test passe quand je ne fais
mapper.writeValueAsString(t)
donc je suppose que l'empreinte du writerWithDefaultPrettyPrinter()
provoque l'échec du test.
Des idées comment je peux faire passer ce test pour le premier scénario?
Parmi ces trois, j'irais pour (2) ou (3). Le problème avec le premier est que l'apparence de la chaîne "pretty-print" pourrait changer (par exemple, dans une version l'indentation peut être trois espaces et dans une nouvelle version l'indentation est changée en quatre espaces - ou peut-être l'ordre des changements d'attributs), et cela casserait votre test unitaire. A moins que l'aspect * exact * soit important, j'éviterais de tester sur une chaîne fixe particulière. – dcsohl