Junit und private Methoden

Status
Nicht offen für weitere Antworten.
Aus der Junit-FAQ:
How do I test private methods?

Testing private methods may be an indication that those methods should be moved into another class to promote reusability.

But if you must...
[...]

Ich habe ehrlich gesagt Probleme, diesen Satz zu verstehen.

Private Methoden setzt man ja eigentlich nur als Hilfsfunktionen innerhalb einer Klasse und weil es halt nur Hilfsfunktionen für eine andere (öffenltiche) Methode sind, sollen sie halt private sein, damit sie sonst keiner benutzt.
Was hat es dann also für einen Sinn, private Methoden in eine extra Klasse auszulagern um die Wiederverwendbarkeit zu erhöhen? Ich benutze doch gerade private Methoden, WEIL sie nur IN dieser einen und VON dieser EINEN Klasse benutzt werden sollen? Oder habe ich da irgendwo einen Logikfehler? ;-)

Wie sollte man eurer Meinung nach am besten private Methoden testen?
- Gar nicht?
- Direkt innerhalb der Klasse, in der auch die zu testende Methode steht?
- Über Reflection?



PS: Und wieso darf ich nicht den Titel "Junit - private Methoden testen" für dieses Posting wählen? ???:L
 

SnooP

Top Contributor
Ich denke mal eher, dass es so gemeint ist, dass wenn man auf die Idee kommt private Methoden zu testen, vorher auf die Idee kommen sollte, diese als public-Methoden in andere Klassen auszulagern.

Daher - private Methoden gar nicht Testen.
Man will ja den Zustand bzw. die Änderung desselbigen eines Objekts testen, dieser muss ja irgendwie durch eine public-Methode initiiert werden - also testet man diese public-Methode und die unterschiedlichen Ergebnisse aufgrund unterschiedlicher Eingaben... ergo testest du damit die privaten Methoden gleich mit.
Die public-Methoden sind demnach in jedem Fall die wichtigeren, weil diese auch Auswirkungen auf andere Klassen haben. Sprich, wenn man irgendwo nen Refactoring macht, dann haben private Methoden keinen Einfluss auf Abhängigkeiten mit anderen Klassen - die public aber sehr wohl... - und wenn die private Methode denn tatsächlich so geändert wurde, dass der Zustand der Objekte sich grundsätzlich ändert, bekommt man diese Tatsache immer noch über das Testen der public-Methoden mit...

hoffe einigermaßen verständlich gebrabbelt zu haben... is schließlich Freitag und ich hab gleich Feierabend ;)
 
Jo, danke schön. SnooP hat im Prinzip meine Meinung wiedergespiegelt (bzw. meine Meinung aus dem Unterbewusstsein ans Tageslicht befördert). Und danke maki für den Codeschnipsel. Hat beides geholfen. :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
9 IDEA IntelliJ Wie kann man ein JUnit Test bei IntelliJ durchführen? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 11
H kann in Eclipse org.junit nicht importieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
W NetBeans Junit - Test geht nicht mehr IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
J JUnit Tests machen eclipse probleme IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
S JUnit Exception expected IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
B Eclipse Eclipse & JUnit: Zusatzhinweise ausgeben? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
S Eclipse: JUnit bei jedem Projekt automatisch hinzufügen lassen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
M Junit Reports sind leer IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
S Eclipse eclipse und junit IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
achillesat Eclipse RAP und JUnit Integration IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
A Junit Tests aus unterschiedlichen Projekten hintereinander ausführen? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
J NetBeans JUnit 4.5: initialization Error caused an ERROR: Test class can only have one constructor IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
M Junit Testfall mehrfach ausführen? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
M junit best practices IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
L Eclipse-Projekt aus SVN so auschecken, daß Junit funktioniert IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
N Junit: datengetriebene und abhängige tests IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
0x7F800000 Wie JUnit auf 4.6 in eclipse updaten? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 17
O Junit und Eclipse IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
S JUnit: assertequal für HashSet IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
T JUnit: nach fehlgeschlagenem Test nicht abbrechen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
Y Maven und JUnit IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
K [junit] wie Beispiel starten IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
T Netbeans 4.1 --> junit library could not be found ? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
E Eclipse Shortcut für z.b. "private static final String..." IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
JAnruVA Eclipse Methoden von JFrame nicht sichtbar IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
MiMa Methoden in Netbeans vergleichen? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 23
B Eclipse Autovervollständigung zeigt nicht alle Methoden einer Klasse an IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
keinLebenNurCode Eclipse Eclipse: Gelbes Hilfsfenster für Funktionen und Methoden anzeigen lassen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
S Eclipse Methoden Fenster anzeigen lassen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 1
S Eclipse: wie zeige ich beim Autocomplete nur die Methoden der aktuellen Klasse (und nicht ihrer Elternklassen an) IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 0
O Eclipse Methoden einklappen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
J NetBeans Klasseneinsicht, Implementierung der Methoden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
T Mocken statischer Methoden mit EasyMock IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
beatles Eclipse Methoden in eigene Klassen exportieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 11
OnDemand Paackage Explorer Methoden verstecken IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
M Eclipse zeigt mir nichtmehr an, welche Methoden in einer Klasse sind IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
A Leere Methoden o.ä. finden? Eclipse Plugin? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
M Nachvollziehen welche Methoden aufgerufen werden? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
D Eclipse WindowBuilder: Bestimmt Zeilen/Methoden ignorieren? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
U Eclipse - Methoden verschwinden lassen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 5
R Eclipse zeigt mir nicht vorhandene Methoden an IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
N Eclipse Alle Methoden und Klassen eines Projekt in Tabelle exportieren IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 6
D Automatisch Interface implementieren - Parameternamen in Methoden nur arg0, etc.? IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
S IDE Netbeans nutzt deprecated Methoden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
A NetBeans methoden automatisch beim übersetzen ausführen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
H Eclipse Verfügbare Methoden/Eigenschaften anzeigen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 8
Java.getSkill() Eclipse Strg Leertaste nur eigene Methoden anzeigen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
G Methoden löschen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 4
Spin Netbeans - Benutzung von Klassen und Methoden finden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 7
P Netbeans - Methoden aus generiertem Code löschen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
O Methoden und Properties werden doppelt angezeigt IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
B Eclipse Java Editor Methoden ausblenden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
K Methoden in Eclipse einfügen IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
M Tool zum entfernen von @deprecated-Klassen/Methoden etc. IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 15
P Eclipse: Infobox zu Methoden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 2
A NetBeans Methoden unter Schloss IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3
C Tool, um unbenutzte Variablen und Methoden zu finden IDEs - Eclipse, IntelliJ IDEA, BlueJ & mehr 3

Ähnliche Java Themen

Neue Themen


Oben