Hallo,
ich bastel gerade an einem Kalender. Er funktioniert soweit gut, sowohl über die Konsoleneingabe, als auch die jeweiligen Testfälle.
Mir gefällt aber nicht, dass ich für die Testfälle Extracode benötige bzw. nur eins läuft: Test oder "User-Programm".
Ein Test sieht z.B. so aus:
Im Programm gehört dazu:
Die obere Funktion setData liest die Funktionswerte aus der Konsole, prüft sie auf Plausibilität und gibt sie schließlich ins Arrays Calendar.
newEntry macht so ziemlich dasselbe, nur dass sie ihre Werte vom Test übergeben bekommt.
Kann man das irgendwie zusammenfassen? Mir fiele nur noch Auskommentieren der jeweiligen Zeilen ein.
ich bastel gerade an einem Kalender. Er funktioniert soweit gut, sowohl über die Konsoleneingabe, als auch die jeweiligen Testfälle.
Mir gefällt aber nicht, dass ich für die Testfälle Extracode benötige bzw. nur eins läuft: Test oder "User-Programm".
Ein Test sieht z.B. so aus:
Java:
@Test
public void testNewEntry(){
int year = 2008;
int month = 12;
int day = 25;
int hour = 15;
String toDo = "test";
String result = Calendar.newEntry(year, month, day, hour, toDo);
assertEquals("Done", result);
}
Im Programm gehört dazu:
Java:
public static void setData() {
System.out.println("Welches Jahr? ");
int year = in.nextInt()-2000;
while (year < 0 || year > 9) {
System.out.println("Jahr ungültig");
year = in.nextInt()-2000;
}
System.out.println("Welcher Monat? (als Zahl)");
int month = in.nextInt()-1;
while (month < 0 || month > 11) {
System.out.println("Monat ungültig");
month = in.nextInt()-1;
}
System.out.println("Welcher Tag? ");
int day = in.nextInt()-1;
while (day < 0 || day > 30) {
System.out.println("Tag ungültig");
day = in.nextInt()-1;
}
System.out.println("Wie viel Uhr(Stunde)? ");
int hour = in.nextInt();
while (hour < 0 || hour > 23) {
System.out.println("Stunde ungültig");
hour = in.nextInt();
}
System.out.println("Welcher Termin? ");
String toDo = in.next();
calendar[year][month][day][hour] = toDo;
System.out.println("");
menu();
}
public static String newEntry(int year, int month, int day, int hour, String toDo) {
int yearToSave = year-2000;
int monthToSave = month-1;
int dayToSave = day-1;
int hourToSave = hour;
String toDoSave = toDo;
if (yearToSave < 0 || yearToSave > 9) {
return "Year Invalid";
}
if (monthToSave < 0 || monthToSave > 11) {
return "Month Invalid";
}
if (dayToSave < 0 || dayToSave > 30) {
return "Day Invalid";
}
if (hourToSave < 0 || hourToSave > 23) {
return "Hour Invalid";
}
calendar[yearToSave][monthToSave][dayToSave][hourToSave] = toDoSave;
return "Done";
}
Die obere Funktion setData liest die Funktionswerte aus der Konsole, prüft sie auf Plausibilität und gibt sie schließlich ins Arrays Calendar.
newEntry macht so ziemlich dasselbe, nur dass sie ihre Werte vom Test übergeben bekommt.
Kann man das irgendwie zusammenfassen? Mir fiele nur noch Auskommentieren der jeweiligen Zeilen ein.