hallo zusammen,
ich habe schon eine Klasse, die Datum heißt und prüft, ob ein Jahr ein Schaltjahr ist oder nicht, die ist richtig geschrieben, aber bei dieser Aufgabe bekomme ich Fehler
habt ihr Idee, woran den Fehler liegen kann ?
danke
die Aufgabe heißt :
Schreiben Sie eine Klasse DatumTest mit einer Klassenmethode test, die keine Argumente annimmt, und die einen Wahrheitswert zurückgibt. Sie testet gegebene Implementierungen der Methode istSchaltjahr der Klasse Datum aus Aufgabe B03A4. Die Testmethode soll genau dann false zurückgeben, wenn für eine Implementierung ein Fehler gefunden wird. Hinweis: Beachten Sie, dass Sie nicht nur positive Fälle überprüfen müssen („Jahr X ist ein Schaltjahr“), sondern auch negative („Jahr X ist kein Schaltjahr“). Hinweis: Orientieren Sie sich an dem Beispiel für Unit-Tests aus der Vorlesung. Die Klasse sollte aber keine main-Methode enthalten. Sie finden in LEA zu dieser Aufgabe eine entsprechende Vorlage, die sich einfach um weitere Testfälle zu ergänzen lässt. Überlegen Sie, welche unterschiedlichen Fälle von 3 Aufrufen vorkommen können. Sehen Sie jeweils einen repräsentativen Aufruf vor und prüfen Sie, ob das Ergebnis der erwartete Wert ist. Testen Sie die Klasse mit fehlerhaften Implementierungen von Datum. Werden diese erkannt?
und der Code ist :
public class DatumTest {
public static boolean istSchaltjahrCheck(int j, boolean erw) {
boolean erg = Datum.istSchaltjahr(j);
if (erg != erw) {
System.out.println("FEHLER: istSchaltjahr(" + j + ")=="
+ erg + " statt " + erw);
}
return erg == erw;
}
public static boolean istSchaltjahrTest() {
return istSchaltjahrCheck(2016, true)
& istSchaltjahrCheck(2018, false)
& istSchaltjahrCheck(2000, true)
}
public static boolean test() {
return istSchaltjahrTest();
}
}
der Fehler ist :
!!! erste Tests der Funktionalitaet - Bestehen notwendig, aber nicht hinreichend fuer Erfolg !!!
TestSuite 'Pre':
================================
FAIL | Testfall 'DatumTest_1_A_A'
................................
DatumTest.test();
// Implementierung von 'istSchaltjahr' wird nun im Hintergrund gegen andere ausgetauscht
DatumTest.test();
--------------------------------
FEHLER: zuletzt erwarteter und tatsaechlich erhaltener Wert unterscheiden sich
erwartet: false
erhalten: true
================================
TestSuite fehlgeschlagen :-(
ich habe schon eine Klasse, die Datum heißt und prüft, ob ein Jahr ein Schaltjahr ist oder nicht, die ist richtig geschrieben, aber bei dieser Aufgabe bekomme ich Fehler
habt ihr Idee, woran den Fehler liegen kann ?
danke
die Aufgabe heißt :
Schreiben Sie eine Klasse DatumTest mit einer Klassenmethode test, die keine Argumente annimmt, und die einen Wahrheitswert zurückgibt. Sie testet gegebene Implementierungen der Methode istSchaltjahr der Klasse Datum aus Aufgabe B03A4. Die Testmethode soll genau dann false zurückgeben, wenn für eine Implementierung ein Fehler gefunden wird. Hinweis: Beachten Sie, dass Sie nicht nur positive Fälle überprüfen müssen („Jahr X ist ein Schaltjahr“), sondern auch negative („Jahr X ist kein Schaltjahr“). Hinweis: Orientieren Sie sich an dem Beispiel für Unit-Tests aus der Vorlesung. Die Klasse sollte aber keine main-Methode enthalten. Sie finden in LEA zu dieser Aufgabe eine entsprechende Vorlage, die sich einfach um weitere Testfälle zu ergänzen lässt. Überlegen Sie, welche unterschiedlichen Fälle von 3 Aufrufen vorkommen können. Sehen Sie jeweils einen repräsentativen Aufruf vor und prüfen Sie, ob das Ergebnis der erwartete Wert ist. Testen Sie die Klasse mit fehlerhaften Implementierungen von Datum. Werden diese erkannt?
und der Code ist :
public class DatumTest {
public static boolean istSchaltjahrCheck(int j, boolean erw) {
boolean erg = Datum.istSchaltjahr(j);
if (erg != erw) {
System.out.println("FEHLER: istSchaltjahr(" + j + ")=="
+ erg + " statt " + erw);
}
return erg == erw;
}
public static boolean istSchaltjahrTest() {
return istSchaltjahrCheck(2016, true)
& istSchaltjahrCheck(2018, false)
& istSchaltjahrCheck(2000, true)
}
public static boolean test() {
return istSchaltjahrTest();
}
}
der Fehler ist :
!!! erste Tests der Funktionalitaet - Bestehen notwendig, aber nicht hinreichend fuer Erfolg !!!
TestSuite 'Pre':
================================
FAIL | Testfall 'DatumTest_1_A_A'
................................
DatumTest.test();
// Implementierung von 'istSchaltjahr' wird nun im Hintergrund gegen andere ausgetauscht
DatumTest.test();
--------------------------------
FEHLER: zuletzt erwarteter und tatsaechlich erhaltener Wert unterscheiden sich
erwartet: false
erhalten: true
================================
TestSuite fehlgeschlagen :-(