Soll ich toString () mit junit testen?

7

Können solche Tests einen guten Grund haben zu existieren?

    
AvrDragon 21.09.2012, 10:05
quelle

4 Antworten

22

Einige Klassen verwenden toString für mehr als nur für Benutzer lesbare Informationszeichenfolgen. Beispiele sind StringBuilder und StringWriter . In einem solchen Fall ist es natürlich ratsam, die Methode wie jede andere Geschäftswertmethode zu testen.

Selbst im allgemeinen Fall ist es ratsam, toString auf Zuverlässigkeit zu testen (es gibt keine Ausnahmen). Das letzte, was Sie brauchen, ist eine Log-Anweisung, die Ihren Code wegen eines schlecht implementierten toString in die Luft jagt. Es ist mir mehrmals passiert, und die resultierenden Fehler sind von der schlimmsten Art, da Sie den toString Aufruf im Quellcode nicht sehen - er ist implizit in einer Log-Anweisung verborgen.

    
Marko Topolnik 21.09.2012, 10:07
quelle
4

Die Frage ist nicht, ob ich toString () testen soll, aber interessiert Sie das Ergebnis von toString ()? Wird es für etwas verwendet? Wenn ja, dann teste es.

Wenn eine Methode für etwas reales verwendet wird, dann teste es.

    
Matthew Farwell 21.09.2012 10:06
quelle
2
___ qstntxt ___

Können solche Tests einen guten Grund haben zu existieren?

    
___ antwort12528424 ___

Offensichtliche Antwort ist "Nein, es ist nur eine Verschwendung von Zeit". Aber für viele Klassen, vor allem Wert-Wrapper, sollte toString überlastet sein und mehr Informationen liefern, als org.package.ClassName@2be2befa

Also mein propostal Test für toString ist:

%Vor%

Es erhöht auch Testkonvertierung, was zumindest nicht schlecht ist.

    
___ answer12528437 ___

Die Frage ist nicht, ob ich toString () testen soll, aber interessiert Sie das Ergebnis von toString ()? Wird es für etwas verwendet? Wenn ja, dann teste es.

Wenn eine Methode für etwas reales verwendet wird, dann teste es.

    
___ tag123junit ___ Beliebtes Unit-Testing-Framework für Java und Scala. Die neueste Version, JUnit 4, unterstützt Rich-Annotation-basierte und parametrisierte Tests. Erwägen Sie die Verwendung in Verbindung mit dem Java- oder Scala-Tag, um Ihren Anwendungsfall anzugeben. ___ tag123java ___ Java (nicht zu verwechseln mit JavaScript oder JScript oder JS) ist eine universelle objektorientierte Programmiersprache, die für die Verwendung in Verbindung mit der Java Virtual Machine (JVM) entwickelt wurde. "Java-Plattform" ist der Name für ein Computersystem, auf dem Tools zum Entwickeln und Ausführen von Java-Programmen installiert sind. Verwenden Sie dieses Tag für Fragen, die sich auf die Java-Programmiersprache oder Java-Plattform-Tools beziehen. ___ qstnhdr ___ Soll ich toString () mit junit testen? ___ tag123tostring ___ "toString" oder "ToString" ist eine wichtige Formatierungsmethode oder -funktion, die in höheren Programmiersprachen verwendet wird. Es konvertiert ein Objekt in seine Zeichenfolgendarstellung, so dass es für die Anzeige geeignet ist. ___ answer12528461 ___

Einige Klassen verwenden %code% für mehr als nur für Benutzer lesbare Informationszeichenfolgen. Beispiele sind %code% und %code% . In einem solchen Fall ist es natürlich ratsam, die Methode wie jede andere Geschäftswertmethode zu testen.

Selbst im allgemeinen Fall ist es ratsam, %code% auf Zuverlässigkeit zu testen (es gibt keine Ausnahmen). Das letzte, was Sie brauchen, ist eine Log-Anweisung, die Ihren Code wegen eines schlecht implementierten %code% in die Luft jagt. Es ist mir mehrmals passiert, und die resultierenden Fehler sind von der schlimmsten Art, da Sie den %code% Aufruf im Quellcode nicht sehen - er ist implizit in einer Log-Anweisung verborgen.

    
___ answer12528467 ___

Wenn das Ergebnis der Methode für Sie wichtig ist, sollten Sie es testen, andernfalls können Sie das einfach ignorieren.

    
___
AvrDragon 21.09.2012 10:05
quelle
0

Wenn das Ergebnis der Methode für Sie wichtig ist, sollten Sie es testen, andernfalls können Sie das einfach ignorieren.

    
Jeffrey Zhao 21.09.2012 10:08
quelle

Tags und Links