JUnit Umstieg auf 4.0 lohnenswert

bspainkf36

Erfahrenes Mitglied
Hey,
was haltet ihr davon - ist der Umstieg jetzt schon sinnvoll? Habe mich in den letzten Tagen über JUnit 4.0 informiert und noch nicht bei jedem neuen Feature den Sinn entdeckt. Welche Vorteile liegen beispeilsweise darin, dass man die Testmethode mittlerweile auch in den gleichen Klassen unterbringen kann, in den auch die zu testetenden Methoden sind? Zuvor wurder strikt zwischen Klasse und TestKlasse getrennt. Ist es möglich mit Ant diese neue Struktur zu berücksichtigen? Habt ihr damit schon Erfahrungen gesammelt?

Eine weitere Geschichte, die mir unklar ist, wie testet man private Variablen? Erzeugt man extra in der Methode getter und setter, jedoch ergeben sich daraus weitere unschöne Punkte. Andere Klassen können auf die privaten Variablen durch die setter zugreifen und sie manipulieren. Gibt es dafür einen anderen Weg :) ?

Danke für die Hilfe :)

Gruß Kon
 
Hallo!

Vorteile liegen beispeilsweise darin, dass man die Testmethode mittlerweile auch in den gleichen Klassen unterbringen kann, in den auch die zu testetenden Methoden sind?
Zuvor wurder strikt zwischen Klasse und TestKlasse getrennt. Ist es möglich mit Ant diese neue Struktur zu berücksichtigen? Habt ihr damit schon Erfahrungen gesammelt?
Durch die Unterstützung von Annotations kann man nun auch mit der @Test Annotation Methoden als "test"-
Methoden Kennzeichnen, die dann von der JUnit Laufzeitumgebung berücksichtigt werden.
Manchmal kam es vor, dass man in einer bestimmten Testmethode eines Testcase nur die zu testende
Methode aufgerufen hat. Dabei wurde nur geschaut, ob der Aufruf ohne Exception klappt oder ob
eine bestimmte Ausnahme geworfen wurde. D.h. um diese Methoden zu testen musste man mit Code-Duplikation
leben... mit der neuen Annotationsunterstützung lässt sich die Code-Duplikation minimieren.
Eine schicke Uebersicht findet man hier:
http://www.instrumentalservices.com/index.php?option=com_content&task=view&id=45&Itemid=52

Eine weitere Geschichte, die mir unklar ist, wie testet man private Variablen? Erzeugt man extra in der Methode getter und setter, jedoch ergeben sich daraus weitere
unschöne Punkte. Andere Klassen können auf die privaten Variablen durch die setter zugreifen und sie manipulieren. Gibt es dafür einen anderen Weg ?

Na ja, ich denke mal nicht, dass dort getter/setter Methoden generiert werden... sondern eher per
Reflection darauf zugegriffen wird.

... schau mal hier:
Code:
/**
 * 
 */
package de.tutorials;

import java.lang.reflect.Field;

/**
 * @author Tom
 *
 */
public class PrivateFieldAccessExample {

    /**
     * @param args
     */
    public static void main(String[] args) throws Exception{
        Field valueField = String.class.getDeclaredField("value");
        valueField.setAccessible(true);
        valueField.set("ABCDEFGHIJKL","tutorials.de".toCharArray());
        System.out.println("ABCDEFGHIJKL");
    }
}

Gruß Tom
 
Zurück