Java JUnit Test

Hallo,

könnte mir jemand sagen, wie man zu folgendem Code einen Unit-Test schreibt??? Bin komplett planlos…

Danke & mfg

public class Klasse {

public static void main(String[] args) {
Klasse rechnen = new Klasse();
rechnen.aktion();
}

int result;

public void aktion() {
result = 5+3;
System.out.println(result);

}
}

Ok, ich rate mal, was genau du meinst:

public void testAktion()
 {
 java.io.OutputStream aByteArrayOS = new java.io.ByteArrayOutputStream();
 java.io.PrintStream aTestPS = new java.io.PrintStream( aByteArrayOS );
 System.setOut( aTestPS );

 Klasse aKlasse = new Klasse();
 aKlasse.aktion();

 assertEquals( aByteArrayOS.toString(), "8\n" );
 assertEquals( aKlasse.result, 8 );
 }

Das funktioniert, wenn die Testklasse im selben Paket wie Klasse ist, weil der Zugriff auf result default (also package) ist. Das ist eh oft empfehlenswert. Ich empfehle des weiteren für die Testklassen einen zweiten Baum aufzumachen, also z.B. eimal src für die Sourcen und daneben tst für die Tests. Das ist übersichtlicher, und man kann dennoch die Tests in die jeweils selben Pakete packen.

Ach ja: In tearDown() evtl. System.setOut() wieder zurücksetzen, kann man sich in System.setUp() ja merken.

… Michael