Testmethode schreiben fiese Falle... Java?


17.05.2021, 17:47

Die Aufgabe ist also quasi eine Simulation so zu bauen, dass die Methode wie sie implementiert ist nicht das zurück gibt, was erwartet ist (richtig?). Nur weiß ich eben nicht wie...

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Dein Ansatz ist eigentlich goldrichtig. Die Fehlermeldung kommt mir aber spanisch vor. Eigentlich sollte der Test entweder durchlaufen oder mit einer Meldung von assertEquals() über zwei verschiedene Geldbeträge abbrechen.

Insbesondere kennt assertEquals() nur die übergebenen Werte und weiß nicht, woher Du sie hast. Warum der Name der zu testenden Funktion in der Meldung erscheint, ist mir ein Rätsel. Entweder ist Dein Lehrer ein Spaßvogel, oder er hat das System versehentlich kaputt konfiguriert.

Probier mal:

public void testBerechneMietgebuehr()
{
Geldbetrag erwartet = new Geldbetrag(700);
Geldbetrag berechnet = _buch1.berechneMietgebuehr(2);

if (berechnet.equals(erwartet)
    assertEquals(erwartet, berechnet);
else
    assertEquals(erwartet, erwartet);
}

Was passiert dann?

xam193 
Fragesteller
 17.05.2021, 18:54

Ich denke der Lehrer ist ein Spaßvogel. Es hat nun geklappt, indem ich drei Testfälle behandelt habe...

1
xam193 
Fragesteller
 17.05.2021, 18:54
@xam193

Also einer und zwei haben wohl nicht gereicht..

1
ralphdieter  17.05.2021, 18:58
@xam193

Hirnbatsch! Wenn man schon die Fehlermeldungen konfiguriert, könnte man das auch einfach im Klartext dazu schreiben. Immerhin sollst Du ja programmieren, nicht probieren.

1

Die konkrete Implementation von berechneMietgebuehr nicht zu kennen, ist kein Problem, denn es soll lediglich geprüft werden, ob die Methode das tut, was sie verspricht. Wenn man also das Argument 2 hineinstopft und dafür das Ergebnis 700 erwartet, ist das korrekt. Wie die Methode es hinbiegt, dieses Ergebnis zu erreichen, kann dir egal sein. Hauptsache, es funktioniert für jeden Anwendungsfall.

Deine Testmethode müsste folgendermaßen zwei Fälle abdecken:

  • Das das erwartete Ergebnis bei einer positiven Anzahl an Miettagen berechnet wird.
  • Das das erwartete Ergebnis bei einer negativen Anzahl an Miettagen berechnet wird (sei es eine Fehlermeldung, null, o.ä.).
xam193 
Fragesteller
 17.05.2021, 18:05

Danke für die Antwort!

0
xam193 
Fragesteller
 17.05.2021, 18:18
@xam193

Habe es nun hinbekommen danke!

0