ich für eine statische Hilfsmethode Unit-Test schreibe:Android Schreiben Unit-Test für Utility-Methoden
public static String getString(Object object, boolean prettyPrint) {
if (object == null) {
throw new NullPointerException("Cannot pass null to Utility.getString() method");
}
Gson gson;
if (prettyPrint) {
gson = new GsonBuilder().setPrettyPrinting().create();
} else {
gson = new Gson();
}
return gson.toJson(object);
}
Hier ist das Gerät zu testen:
@Test
public void getString() throws Exception {
JokeItem item = new JokeItem("title", "joke");
String required = new Gson().toJson(item);
String actual = Utility.getString(item, false);
Assert.assertEquals(required, actual);
String required1 = "{\"joke\":\"joke\",\"title\":\"title\"}";
String actual1 = Utility.getString(item, false);
Assert.assertEquals(required1, actual1);
}
JokeItem
ist eine einfache pojo Klasse. Das Problem, dem ich gegenüberstehe, ist, dass ich nicht sicher bin, ob mein Testfall der richtige Weg ist, diese Methode zu testen, weil ich grundsätzlich die gleiche Methode gson.toJson(object)
in beiden Methoden verwende. Es wäre sehr hilfreich, wenn ich ein paar Einblicke in Tests bekommen könnte diese Art von Funktionen und Tücken und Unzulänglichkeiten in meinem Ansatz.
Wenn Sie Googles "Gson" verwenden, warum testen Sie es in der Unit? Ich teste nur Code, den ich aktiv ändern/umgestalten kann, wenn ich Bibliotheken von Drittanbietern beim jeweiligen Entwickler verwende, um sie selbst zu testen. Die einzige Abweichung ist, wenn ich Fehler in der Bibliothek selbst entdecke und beweisen möchte. – Smutje
Der richtige Weg ist 'new Gson(). ToJson (item); 'weil, wenn du mehr Eigenschaften in deinem 'JokeItem' hast, würdest du vermutlich dein eigenes' 'required1'' ändern müssen – Smit