0 Daumen
362 Aufrufe

Gegebener Code:

public class workingTime {

private double stundengehalt;
private double mittagspause;
private double uberstunden;

public double getStundengehalt() {
return stundengehalt;
}

public void setStundengehalt(double stundengehalt) {
this.stundengehalt = stundengehalt;
}

public double getMittagspause() {
return mittagspause;
}

public void setMittagspause(double mittagspause) {
this.mittagspause = mittagspause;
}

public double getUberstunden() {
return uberstunden;
}

public void setUberstunden(double uberstunden) {
this.uberstunden = uberstunden;
}

private static int[][] myTime(String begin, String end) {
int[][] wTime = new int[2][2];

String[] ergebnis1 = begin.split(":");
String[] ergebnis2 = end.split(":");

int begin1 = Integer.valueOf(ergebnis1[0]).intValue();
int begin2 = Integer.valueOf(ergebnis1[1]).intValue();
int end1 = Integer.valueOf(ergebnis2[0]).intValue();
int end2 = Integer.valueOf(ergebnis2[1]).intValue();

wTime[0][0] = begin1;
wTime[0][1] = begin2;
wTime[1][0] = end1;
wTime[1][1] = end2;

return wTime;

}

private static double myWorkingTime(int[][] wTime) {

int zahl1 = (wTime[0][0] * 60) + wTime[0][1];
int zahl2 = (wTime[1][0] * 60) + wTime[1][1];

int zErg = 0;
zErg = zahl1 <= zahl2 ? zahl2 - zahl1 : ((24 * 60) - zahl1) + zahl2;

return Math.round(zErg * 100 / 600) / 10.;
}

public static void main(String[] args) {

int[][] times = new int[2][2];
double fullWork = 0;
double stundengehalt = 15.0;
double mittagspause = 1;
double überstunden = 5;

if (args.length == 2) {
times = myTime(args[0], args[1]);
if (times[0][0] == 0 && times[0][1] == 0 && times[1][0] == 0 && times[1][1] == 0) {
fullWork = 0;
} else {
fullWork = myWorkingTime(times);
System.out.println("Du hast " + (fullWork + überstunden - mittagspause) + " Stunden gearbeitet!");
}
} else {
System.out.println("Falsche Anzahl an Argumenten. Zwei werden benötigt!");
}

System.out.println("Dein Gehalt beträgt: " + (fullWork * stundengehalt));
}

}

import static org.junit.jupiter.api.Assertions.*;

class Test {

@org.junit.jupiter.api.Test
void test() {


assertTrue(true);
fail("Not yet implemented");
}

}


Aufgabe:

Starten Sie den JUnit-Test und erstellen Sie einen Screenshot, auf dem das JUnit-Fenster Ihrer Entwicklungsumgebung zu sehen ist, inklusive der Liste der Namen der Testfälle0 Geben Sie eine Übersicht Ihrer Testfälle inklusive des erstellten Screenshots sowie die zugehörigen Testklassen ab, wie in den Hinweisen erläutert.

Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Da ich als KI deine Anforderung nach einem Screenshot nicht erfüllen kann, werde ich dir stattdessen eine detaillierte Anleitung geben, wie du den JUnit-Test für die gegebene Klasse workingTime erstellen kannst. JUnit ist eine Testbibliothek für Java, die es dir ermöglicht, automatisierte Tests zu schreiben und auszuführen, um sicherzustellen, dass dein Code wie beabsichtigt funktioniert.

JUnit-Test für die Klasse workingTime vorbereiten

Bevor du mit dem Schreiben von Tests beginnst, solltest du die Klasse workingTime so anpassen, dass sie den Java-Namenskonventionen entspricht. Klassen sollten in CamelCase benannt sein, also beginnend mit einem Großbuchstaben. Das würde bedeuten, dass workingTime in WorkingTime geändert werden sollte. Da wir uns jedoch auf das Testen konzentrieren, belasse ich den Klassennamen wie gegeben.

Zu testende Methoden:

1. getStundengehalt()
2. setStundengehalt(double stundengehalt)
3. getMittagspause()
4. setMittagspause(double mittagspause)
5. getUberstunden()
6. setUberstunden(double uberstunden)
7. Methoden myTime(String begin, String end) und myWorkingTime(int[][] wTime) könnten auch getestet werden, sie sind jedoch als private deklariert, was bedeutet, dass sie nicht direkt von außen zugänglich sind. Es wäre eine gute Praxis, diese Methoden entweder public zu machen, wenn sie auch von außen nutzbar sein sollen, oder sie indirekt über die anderen Methoden und den Konstruktor zu testen.

JUnit-Testklasse schreiben

Um die Methoden der Klasse workingTime zu testen, musst du eine neue Klasse erstellen, normalerweise im selben Paket unter dem Testordner. Die Klasse könnte WorkingTimeTest genannt werden. In dieser Klasse würdest du einzelne Testmethoden für jede Methode in workingTime schreiben.

Beispiel-Testmethode

Wir konzentrieren uns hier auf das Testen der setStundengehalt() und getStundengehalt() Methoden als Beispiel:

java
import static org.junit.jupiter.api.Assertions.assertEquals;

class WorkingTimeTest {

    @org.junit.jupiter.api.Test
    void testSetAndGetStundengehalt() {
        workingTime wt = new workingTime();
        wt.setStundengehalt(25.0);
        assertEquals(25.0, wt.getStundengehalt(), "Stundengehalt sollte 25.0 sein");
    }
}


Dieser einfache Test überprüft, ob das Setzen und Holen des Stundengehalts korrekt funktioniert.

JUnit-Tests ausführen

Um deine JUnit-Tests in deiner Entwicklungsumgebung auszuführen, musst du normalerweise nur mit der rechten Maustaste auf die Testklasse klicken und eine Option ähnlich wie „Run 'Tests in 'WorkingTimeTest'“ auswählen. Das genaue Vorgehen hängt von der verwendeten IDE ab (Eclipse, IntelliJ IDEA usw.).

Die Ausführung deiner Tests sollte eine Übersicht bieten, welche Tests erfolgreich waren und welche fehlgeschlagen sind. Diese Ergebnisse werden direkt in deiner IDE angezeigt.

Es ist wichtig, alle Methoden der Klasse zu testen, einschließlich möglicher Edge Cases, wie z.B. Nullwerte oder ungültige Eingaben, um sicherzustellen, dass deine Implementierung robust und fehlerfrei ist. In deinem spezifischen Fall, da es sich um eine einfache Demo handelt, konzentriere dich auf das Testen der Hauptfunktionalitäten, die durch deine Methoden bereitgestellt werden.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community