junit - Kapitel 1: Erste Schritte mit junit Bemerkungen JUnit ist ein einfaches Framework, um wiederholbare

  • View
    2

  • Download
    0

Embed Size (px)

Text of junit - Kapitel 1: Erste Schritte mit junit Bemerkungen JUnit ist ein einfaches Framework, um...

  • junit

    #junit

  • Inhaltsverzeichnis

    Über 1

    Kapitel 1: Erste Schritte mit junit 2

    Bemerkungen 2

    Versionen 2

    Examples 2

    Installation oder Setup 2

    Beispiel für den Test der Basiseinheit 3

    @Vorher Nachher 4

    Erwartete Ausnahme abfangen 5

    Testen von Ausnahmen in JUnit5 6

    Die getestete Methode 6

    Die Testmethode 6

    Tests ignorieren 6

    JUnit - Beispiele für grundlegende Anmerkungen 7

    Hier sind einige grundlegende JUnit-Anmerkungen, die Sie verstehen sollten: 7

    Kapitel 2: Benutzerdefinierte Testregeln 8

    Bemerkungen 8

    Examples 8

    Custom @TestRule nach Implementierung 8

    Custom @TestRule nach Erweiterung 9

    Kapitel 3: Generieren Sie das Junit-Testfall-Skelett für vorhandenen Code 10

    Einführung 10

    Examples 10

    Generieren Sie das Junit-Testfall-Skelett für vorhandenen Code in Eclipse 10

    Kapitel 4: Testausführungsreihenfolge 11

    Syntax 11

    Examples 11

    Standardreihenfolge 11

    Lexikographische Reihenfolge 12

    Kapitel 5: Testen mit DataProvidern 13

  • Examples 13

    Installation und Verwendung 13

    Kapitel 6: Testfälle in Junit ignorieren 15

    Einführung 15

    Examples 15

    Testfall in Junit ignorieren 15

    Kapitel 7: Tests 16

    Bemerkungen 16

    Examples 16

    Unit-Test mit JUnit 16

    Fixtures 18

    Unit-Tests mit Theorien 20

    Leistungsmessung 21

    Kapitel 8: Tests parametrisieren 23

    Einführung 23

    Syntax 23

    Bemerkungen 23

    Examples 23

    Verwenden eines Konstruktors 23

    Credits 25

  • Über

    You can share this PDF with anyone you feel could benefit from it, downloaded the latest version from: junit

    It is an unofficial and free junit ebook created for educational purposes. All the content is extracted from Stack Overflow Documentation, which is written by many hardworking individuals at Stack Overflow. It is neither affiliated with Stack Overflow nor official junit.

    The content is released under Creative Commons BY-SA, and the list of contributors to each chapter are provided in the credits section at the end of this book. Images may be copyright of their respective owners unless otherwise specified. All trademarks and registered trademarks are the property of their respective company owners.

    Use the content presented in this book at your own risk; it is not guaranteed to be correct nor accurate, please send your feedback and corrections to info@zzzprojects.com

    https://riptutorial.com/de/home 1

    http://riptutorial.com/ebook/junit https://archive.org/details/documentation-dump.7z mailto:info@zzzprojects.com

  • Kapitel 1: Erste Schritte mit junit

    Bemerkungen

    JUnit ist ein einfaches Framework, um wiederholbare Tests für die Java-Programmiersprache zu schreiben. Es ist eine Instanz der xUnit-Architektur für Unit-Test-Frameworks.

    Hauptmerkmale bestehen aus:

    Assertionen , mit denen Sie das Testen von Werten in Ihren Tests anpassen können• Test Läufer, die Sie angeben können , wie die Tests in Ihrer Klasse laufen• Regeln , mit denen Sie das Verhalten von Tests in Ihrer Klasse flexibel ändern können• Suiten , mit denen Sie eine Reihe von Tests aus vielen verschiedenen Klassen zusammenstellen können

    Nützliche Erweiterung für JUnit:

    AssertJ : Fließende Behauptungen für Java• Mockito : Spottender Rahmen für Java•

    Versionen

    Ausführung Veröffentlichungsdatum

    JUnit 5 Meilenstein 2 2016-07-23

    JUnit 5 Meilenstein 1 2016-07-07

    JUnit 4.12 2016-04-18

    JUnit 4.11 2012-11-14

    JUnit 4.10 2011-09-28

    JUnit 4.9 2011-08-22

    JUnit 4.8 2009-12-01

    JUnit 4.7 2009-07-28

    JUnit 4.6 2009-04-14

    Examples

    Installation oder Setup

    https://riptutorial.com/de/home 2

    http://www.riptutorial.com/java/topic/84/getting-started-with-java-language http://joel-costigliola.github.io/assertj/index.html http://www.riptutorial.com/topic/2055

  • Da es sich bei JUnit um eine Java-Bibliothek handelt, müssen Sie zur Installation nur ein paar JAR-Dateien in den Klassenpfad Ihres Java-Projekts einfügen, und schon kann es losgehen.

    Sie können diese beiden JAR-Dateien manuell herunterladen: junit.jar & hamcrest-core.jar .

    Wenn Sie Maven verwenden, können Sie einfach eine Abhängigkeit in Ihre pom.xml :

    junit junit 4.12 test

    Wenn Sie Gradle verwenden, fügen Sie eine Abhängigkeit in Ihr build.gradle :

    apply plugin: 'java' dependencies { testCompile 'junit:junit:4.12' }

    Danach können Sie Ihre erste Testklasse erstellen:

    import static org.junit.Assert.assertEquals; import org.junit.Test; public class MyTest { @Test public void onePlusOneShouldBeTwo() { int sum = 1 + 1; assertEquals(2, sum); } }

    und führen Sie es von der Kommandozeile aus:

    Windows java -cp .;junit-X.YY.jar;hamcrest-core-XYjar org.junit.runner.JUnitCore MyTest• Linux oder OsX java -cp .:junit-X.YY.jar:hamcrest-core-XYjar org.junit.runner.JUnitCore MyTest

    oder mit Maven: mvn test

    Beispiel für den Test der Basiseinheit

    Dieses Beispiel ist eine grundlegende Einrichtung zum Aufheben der Überprüfung von StringBuilder.toString () mit junit.

    import static org.junit.Assert.assertEquals; import org.junit.Test;

    https://riptutorial.com/de/home 3

    http://bit.ly/My9IXz http://bit.ly/1gbl25b

  • public class StringBuilderTest { @Test public void stringBuilderAppendShouldConcatinate() { StringBuilder stringBuilder = new StringBuilder(); stringBuilder.append("String"); stringBuilder.append("Builder"); stringBuilder.append("Test"); assertEquals("StringBuilderTest", stringBuilder.toString()); } }

    @Vorher Nachher

    Eine mit @Before annotierte Methode wird vor jeder Ausführung von @Test Methoden ausgeführt. Analog wird eine @After annotierte Methode nach jeder @Test Methode ausgeführt. Damit können Sie wiederholt eine Testeinstellung einrichten und nach jedem Test aufräumen. Die Tests sind also unabhängig und der Vorbereitungscode wird nicht in die @Test Methode kopiert.

    Beispiel:

    import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; public class DemoTest { private List list; @Before public void setUp() { list = new ArrayList(); list.add(3); list.add(1); list.add(4); list.add(1); list.add(5); list.add(9); } @After public void tearDown() { list.clear(); } @Test public void shouldBeOkToAlterTestData() { list.remove(0); // Remove first element of list. assertEquals(5, list.size()); // Size is down to five }

    https://riptutorial.com/de/home 4

  • @Test public void shouldBeIndependentOfOtherTests() { assertEquals(6, list.size()); } }

    Mit @Before oder @After annotierte Methoden müssen public void und ohne Argumente sein.

    Erwartete Ausnahme abfangen

    Es ist möglich, die Ausnahme leicht zu erfassen, ohne einen try catch Block auszuführen.

    public class ListTest { private final List list = new ArrayList(); @Test(expected = IndexOutOfBoundsException.class) public void testIndexOutOfBoundsException() { list.get(0); } }

    Das obige Beispiel sollte für einfachere Fälle ausreichen, wenn Sie die von der ausgelösten Ausnahme getragene Nachricht nicht prüfen möchten / müssen.

    Wenn Sie Informationen zu Ausnahmen prüfen möchten, können Sie try / catch block verwenden:

    @Test public void testIndexOutOfBoundsException() { try { list.get(0); Assert.fail("Should throw IndexOutOfBoundException"); } catch (IndexOutOfBoundsException ex) { Assert.assertEquals("Index: 0, Size: 0", ex.getMessage()); } }

    In diesem Beispiel müssen Sie immer Assert.fail() hinzufügen, um sicherzustellen, dass der Test fehlschlägt, wenn keine Ausnahme ausgelöst wird.

    Für ausführlichere Fälle verfügt JUnit über die ExpectedException @Rule , die auch diese Informationen testen kann und wie folgt verwendet wird:

    public class SimpleExpectedExceptionTest { @Rule public ExpectedException expectedException = ExpectedException.none(); @Test public void throwsNothing() { // no exception expected, none thrown: passes. } @Test public void throwsExceptionWithSpecificType() { expectedException.expect(NullPointerException.class);

    https://riptutorial.com/de/home 5

    http://junit.org/junit4/javadoc/4.12/org/junit/rules/ExpectedException.html http://junit.org/junit4/javadoc/4.12/org/junit/rules/ExpectedException.html http://junit.org/junit4/javadoc/4.12/org/junit/rules/ExpectedException.html

  • throw new NullPointerException(); } @Test public void throwsExceptionWithSpecificTypeAndMessage() { expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("Wanted a donut."); throw new IllegalArgumentException("Wanted a donut."); } }

    Testen von Ausnahmen