From 4d18da9bfa89d73cd16d375d34b889620c4b837b Mon Sep 17 00:00:00 2001 From: Thomas Papendieck Date: Mon, 12 Dec 2022 21:27:11 +0100 Subject: [PATCH] =?UTF-8?q?=C3=9Cbungs-Code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 23 +++++++ pom.xml | 61 +++++++++++++++++++ .../java/de/edu/hsfulda/pmut/Berechnung.java | 42 +++++++++++++ .../de/edu/hsfulda/pmut/UebungTesten.java | 19 ++++++ 4 files changed, 145 insertions(+) create mode 100644 README.md create mode 100644 pom.xml create mode 100644 src/main/java/de/edu/hsfulda/pmut/Berechnung.java create mode 100644 src/test/java/de/edu/hsfulda/pmut/UebungTesten.java diff --git a/README.md b/README.md new file mode 100644 index 0000000..8779f31 --- /dev/null +++ b/README.md @@ -0,0 +1,23 @@ +# Übung Testen in Java +## Vorbereitung +- clonen Sie dieses Repository +- importieren Sie dieses Projekt als *"existing Java project"* in eine Java IDE + +## Übung1 +- Öffnen Sie die Klasse `de.edu.hsfulda.pmut.UebungTesten` +- Verwenden Sie die `assertThat()` Methode aus dem *assertj* Framework für folgende Testfälle für die Methode `convert()`: + + 1. 2 -> "2" + 1. 3 -> "Fizz" + 1. 5 -> "Buzz" + 1. 11 -> "11" + 1. 15 -> "FizzBuzz" + 1. 12 -> "12" (schlägt fehl) + +- Verwenden Sie die `assertThat()` Methode aus dem *assertj* Framework für folgende Testfälle für die Methode `gcd()`: + + 1. 15, 20 -> 5 + 1. 183, 99 -> 3 + 1. 91, 1008 -> 7 + +- Ergänzen Sie die `assertThat()` Anweisungen um eine Bechreibung mit der Methode `as()` diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..69f2859 --- /dev/null +++ b/pom.xml @@ -0,0 +1,61 @@ + + 4.0.0 + + de.edu.hsfulda.pmut + TestenInJava + 1.0-SNAPSHOT + jar + + 11 + 11 + [5.8.1,6) + [1.8.1,2) + 4.1.0 + [3.20.2,4) + + + + org.junit.jupiter + junit-jupiter-api + ${junit.jupiter.version} + test + + + org.junit.jupiter + junit-jupiter-params + ${junit.jupiter.version} + test + + + org.assertj + assertj-core + ${assertj.version} + test + + + org.mockito + mockito-junit-jupiter + ${mockito.version} + test + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.0.0-M5 + + + org.junit.jupiter + junit-jupiter-engine + ${junit.jupiter.version} + + + + + + + diff --git a/src/main/java/de/edu/hsfulda/pmut/Berechnung.java b/src/main/java/de/edu/hsfulda/pmut/Berechnung.java new file mode 100644 index 0000000..605f1f4 --- /dev/null +++ b/src/main/java/de/edu/hsfulda/pmut/Berechnung.java @@ -0,0 +1,42 @@ +package de.edu.hsfulda.pmut; + +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class Berechnung { + + public String convert(int currentNumber) { + String fizzBuzz = Stream.of(FizzBuzz.values()) + .map(fb -> fb.map(currentNumber)) + .collect(Collectors.joining("")); + return 0 == fizzBuzz.length() + ? String.valueOf(currentNumber) + : fizzBuzz; + } + + int gcd(int a, int b) { + if (b == 0) + return a; + return gcd(b, a % b); + } +} + +enum FizzBuzz { + FIZZ(3, "Fizz"), BUZZ(5, "Buzz"), QUIX(7, "Quix"); + + private final int probeNumber; + private final String numberWord; + + FizzBuzz(int probeNumber, String numberWord) { + this.probeNumber = probeNumber; + this.numberWord = numberWord; + } + + String map(int currentNumber) { + if (0 == currentNumber % probeNumber) { + return numberWord; + } else { + return ""; + } + } +} \ No newline at end of file diff --git a/src/test/java/de/edu/hsfulda/pmut/UebungTesten.java b/src/test/java/de/edu/hsfulda/pmut/UebungTesten.java new file mode 100644 index 0000000..08b16ac --- /dev/null +++ b/src/test/java/de/edu/hsfulda/pmut/UebungTesten.java @@ -0,0 +1,19 @@ +package de.edu.hsfulda.pmut; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; + +class UebungTesten { + final Berechnung berechnung = new Berechnung(); + + @Test + void convert_number_to_digit() { + // arrange + String expected = "2"; + // act + String result = berechnung.convert(2); + // assert + } +}