Unit Tests mit JUnit4 in Eclipse


JUnit-Tests zu einem Projekt hinzufügen

Um zu einem Projekt JUnit-Tests hinzuzufügen, geht man wie folgt vor.

Projektstruktur vor Hinzufügen der Tests

Zunächst einmal nehmen wir an, die Paketstruktur sieht folgendermaßen aus:

  MyProject
    \- scr
        \- package
            \- A
            \- B
            \- C
    \- JRE System Library [JavaSE-1.6]

Hinzufügen der Tests für die drei vorhandenen Klassen

Für die drei Klassen A, B und C wollen wir nun Tests schreiben:

  1. Verzeichnis test anlegen (Rechtsklick auf MyProject -> new -> Folder -> 'test')
  2. Rechtsklick auf test -> BuildPath -> Use as Source Folder.
    Alternativ bieten neuere Eclipseverionen auch "Source Folder" in der Auswahl unter new, das fasst beide Schritte zusammen.
  3. Neues Paket test/package erzeugen (Rechtsklick auf test -> new -> Package -> 'package')
  4. Neue Klasse test/package/ATest anlegen (Rechtsklick auf (test/)package -> new -> Class -> 'ATest')
    ATest.java
    package package;
    
    import static org.junit.Assert.*;
    
    import org.junit.Test;
    
    public class ATest {
    
        @Test
        public void create1() {
            A a = new A();
            assertNotNull(a);
        }
    
    }
  5. Nun sollte einiges rot leuchten. Mit der Maus über @Test fahren und aus dem Popup "Add JUnit4 to the buildfile" auswählen. (Falls es nicht direkt angeboten wird, findet man es unter "fix project setup").
  6. Für ClassBTest und ClassCTest gehen wir analog wie bei ClassATest vor.

Projektstruktur nach Anlegen der Tests

Das Projekt sollte nun so aussehen:

  MyProject
    \- scr
        \- package
            \- A
            \- B
            \- C
    \- test
        \- package
            \- ATest
            \- BTest
            \- CTest
    \- JRE System Library [JavaSE-1.6]
    \- JUnit 4

Tests laufen lassen

Die Tests kann man einzeln ausprobieren (Cursor in create1 stellen und Ctrl-F11 drücken), man kann die gesamte Klasse ClassTestA laufen lassen (Cursor außerhalb von Methodennamen positionieren und Ctrl-F11 drücken).

Wenn man per Rechtsklick auf das Projekt zunächst "Run As" und dann "JUnitTest" auswählt, werden alle Tests im ganzen Projekt laufen gelassen.

Hat man sich eine Testsuite wie die weiter unten erzeugte "TestAll" erstellt, so kann natürlich auch diese laufen lassen, indem man dort Ctrl-F11 drückt.

Extra Suite für alle Tests hinzufügen (optional)

  1. Paket test/all erzeugen (Rechtsklick auf test -> new -> Package -> 'all')
  2. Klasse AllTests unter test/all anlegen (Rechtsklick auf all -> new -> Class -> 'AllTests')
    AllTests.java
    package all;
    
    import junit.framework.JUnit4TestAdapter;
    import junit.framework.Test;
    import junit.framework.TestSuite;
    
    public class AllTests {
    
        public static Test suite() {
            TestSuite suite = new TestSuite(AllTests.class.getName());
    
            suite.addTest(new JUnit4TestAdapter(package.ATest.class));
            suite.addTest(new JUnit4TestAdapter(package.BTest.class));
            suite.addTest(new JUnit4TestAdapter(package.CTest.class));
    
            return suite;
        }
    
    }
    Die rot unterkringelten Stellen ignorieren wir zunächst. (Diesen Schritt kann man auch überspringen und per Rechtsklick auf das Projekt alle Tests laufen lassen, ohne diese selbst pflegen zu müssen.)
  3. Die Tests selbst in einer Suite wie in AllTests zusammen zu fassen kann man sich sparen, wenn man per Rechtsklick auf das Projekt zunächst "Run As" und dann "JUnitTest" auswählt.

    Inzwischen verwende ich soetwas nicht mehr, da man eh vergisst, alle neuen Tests dort einzutragen und lasse die Tests über Eclips laufen.

    Projektstruktur nach Anlegen der Tests und der Testsuite

    Das Projekt sollte nun so aussehen:

      MyProject
        \- scr
            \- package
                \- A
                \- B
                \- C
        \- test
            \- all
                \- AllTests
            \- package
                \- ATest
                \- BTest
                \- CTest
        \- JRE System Library [JavaSE-1.6]
        \- JUnit 4

zu meiner Javaseite zu meiner Javaseite

zur Startseite des Servers zur Startseite des Servers

Impressum

Valid CSS! Valid XHTML 1.0!

TOP Zum Seitenanfang

zuletzt geändert: