Übung 12 (verfrüht) online
- guido
- Computerversteher
- Beiträge: 378
- Registriert: 30. Nov 2003 21:24
- Wohnort: Mühltal
- Kontaktdaten:
Übung 12 (verfrüht) online
Hallo allerseits,
die Übung 12 ist nun online.
Viele Grüße,
Guido
die Übung 12 ist nun online.
Viele Grüße,
Guido
Re: Übung 12 (verfrüht) online
Cool, vielen Dank. Gleich mal eine Frage:
Sind 0 Liter auch noch zulässig, also statt "mehr" "mindestens 0 Liter"?Übung 12 hat geschrieben:5.1
Nachdem flyTo() aufgerufen wurde, muss dass Flugzeug noch mehr als 0 Liter Benzin haben.
Premature optimization is the root of all evil.
Don't anthropomorphize computers: They hate that.
Don't anthropomorphize computers: They hate that.
- guido
- Computerversteher
- Beiträge: 378
- Registriert: 30. Nov 2003 21:24
- Wohnort: Mühltal
- Kontaktdaten:
Re: Übung 12 (verfrüht) online
Ja, das sollte auch noch OK sein.taufrisch hat geschrieben:Cool, vielen Dank. Gleich mal eine Frage:
Sind 0 Liter auch noch zulässig, also statt "mehr" "mindestens 0 Liter"?Übung 12 hat geschrieben:5.1
Nachdem flyTo() aufgerufen wurde, muss dass Flugzeug noch mehr als 0 Liter Benzin haben.
Guido
- Krümelmonster
- Geek
- Beiträge: 767
- Registriert: 17. Okt 2007 13:58
- Wohnort: Jossgrund
Re: Übung 12 (verfrüht) online
Sind die Assertions in Eclipse unter Java 1.6 im Normalfall aktiviert?
//edit
Da die Assertions anscheinend deaktiviert ist: Wie sind sie zu aktivieren?
//edit
Da die Assertions anscheinend deaktiviert ist: Wie sind sie zu aktivieren?
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
Re: Übung 12 (verfrüht) online
hättest du mal in der Vorlesung aufgepasst ^^
Assertions aktiviert man, indem man -ea als Compilerflag setzt.
Siehe T19 Seite 21
Assertions aktiviert man, indem man -ea als Compilerflag setzt.
Siehe T19 Seite 21
Saying that Java is nice because it works on all Plattforms is like saying that anal sex is nice because it works on all genders.
- Krümelmonster
- Geek
- Beiträge: 767
- Registriert: 17. Okt 2007 13:58
- Wohnort: Jossgrund
Re: Übung 12 (verfrüht) online
Hättest du mal die Frage verstanden 
Dass das mit diesem Flag aktiviert wird, ist mir bewusst, aber wie setze ich es in Eclipse?

Dass das mit diesem Flag aktiviert wird, ist mir bewusst, aber wie setze ich es in Eclipse?
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
Re: Übung 12 (verfrüht) online
Run > Open Run Dialog > [links die auszuführende Klasse auswählen - also in de Regel main] > Arguments > VM Arguments
da dann -ea rein
Oder falls du es immer aktivieren willst:
Window > Preferences > Java > Installed JREs > JRE/JDK auswählen > rechts auf Edit > bei Default VM Argument -ea eintragen
Bitteschön Krümelmonster
da dann -ea rein
Oder falls du es immer aktivieren willst:
Window > Preferences > Java > Installed JREs > JRE/JDK auswählen > rechts auf Edit > bei Default VM Argument -ea eintragen
Bitteschön Krümelmonster

Saying that Java is nice because it works on all Plattforms is like saying that anal sex is nice because it works on all genders.
- Krümelmonster
- Geek
- Beiträge: 767
- Registriert: 17. Okt 2007 13:58
- Wohnort: Jossgrund
Re: Übung 12 (verfrüht) online
Danke, klappt prima.
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
- Krümelmonster
- Geek
- Beiträge: 767
- Registriert: 17. Okt 2007 13:58
- Wohnort: Jossgrund
Re: Übung 12 (verfrüht) online
Aua, ich hab noch eine Frage, die wohl eher mit einem Unverständnis zusammenhängt.
In 5.2 sollen wir doch pro Methode eine Testmethode schreiben und in dieser mehrere Abfragen zusammenfassen, oder?
Ich schreib mich nämlich gerade dumm und dämlich für jede Methode im AirborneComputer drei eigene Testmethoden zu schreiben.
//edit
Ein anderes Problem ist, dass ich in Airplane außer getter- und setter-Methoden keine anderen Methoden habe.
Oder zählt ein Konstruktor auch als Methode?

In 5.2 sollen wir doch pro Methode eine Testmethode schreiben und in dieser mehrere Abfragen zusammenfassen, oder?
Ich schreib mich nämlich gerade dumm und dämlich für jede Methode im AirborneComputer drei eigene Testmethoden zu schreiben.

//edit
Ein anderes Problem ist, dass ich in Airplane außer getter- und setter-Methoden keine anderen Methoden habe.

Oder zählt ein Konstruktor auch als Methode?
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
- guido
- Computerversteher
- Beiträge: 378
- Registriert: 30. Nov 2003 21:24
- Wohnort: Mühltal
- Kontaktdaten:
Re: Übung 12 (verfrüht) online
Ja, das ist ausreichend.Krümelmonster hat geschrieben:Aua, ich hab noch eine Frage, die wohl eher mit einem Unverständnis zusammenhängt.![]()
In 5.2 sollen wir doch pro Methode eine Testmethode schreiben und in dieser mehrere Abfragen zusammenfassen, oder?
In dem Sinne nicht. Wenn es sonst keine Methoden gibt, ist das wohl so... ich würde es (für den Tutor) aber entsprechend kommentieren, damit es nicht wirkt wie "habe ich weggelassen".Krümelmonster hat geschrieben:Ein anderes Problem ist, dass ich in Airplane außer getter- und setter-Methoden keine anderen Methoden habe.![]()
Oder zählt ein Konstruktor auch als Methode?
Guido
Re: Übung 12 (verfrüht) online
Also werden Konstruktoren nicht getestet? Geht das überhaupt
? Hatte gestern überlegt wie ich das machen soll.. mir ist aber nichts eingefallen..

- Krümelmonster
- Geek
- Beiträge: 767
- Registriert: 17. Okt 2007 13:58
- Wohnort: Jossgrund
Re: Übung 12 (verfrüht) online
In der Aufgabe 5.3 wird erwartet, dass in einer Testmethode zwei Abfragen zu Exceptions geschrieben werden.
Aber sobald eine Exception ausgelöst wurde, wird doch die Methode verlassen. Oder sollen try...catch Blöcke
dazu benutzt werden anstatt das @Test(expected = AirplaneException.class)?
Aber sobald eine Exception ausgelöst wurde, wird doch die Methode verlassen. Oder sollen try...catch Blöcke
dazu benutzt werden anstatt das @Test(expected = AirplaneException.class)?
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
- guido
- Computerversteher
- Beiträge: 378
- Registriert: 30. Nov 2003 21:24
- Wohnort: Mühltal
- Kontaktdaten:
Re: Übung 12 (verfrüht) online
Nein, gemeint ist das @Test(expected=...). Das löst genau dann einen Fehler aus, wenn die Methode nicht die erwartete Exception wirft (siehe Vorlesung). Ihr solltet hier also extra "falsche" Werte(Höhe auf < 0 wechseln, ...) als Argument nutzen, um die Exception zu provozieren.Krümelmonster hat geschrieben:In der Aufgabe 5.3 wird erwartet, dass in einer Testmethode zwei Abfragen zu Exceptions geschrieben werden.
Aber sobald eine Exception ausgelöst wurde, wird doch die Methode verlassen. Oder sollen try...catch Blöcke
dazu benutzt werden anstatt das @Test(expected = AirplaneException.class)?
Guido
- Krümelmonster
- Geek
- Beiträge: 767
- Registriert: 17. Okt 2007 13:58
- Wohnort: Jossgrund
Re: Übung 12 (verfrüht) online
Ok, danke.
Da aber zwei Abfragen in einer Testmethode implementiert werden sollen, würde ja die
erste, die eine Exception wirft, auch die Testmethode beenden, wobei die zweite nicht
ausgeführt wird. Wenn allerdings die erste Abfrage so angelegt wird, dass keine Exception
geworfen werden sollte, dann kann die zweite ihre Exception werfen.
Das @Test(expected = ...) kann jedoch nicht sehen, ob die Exception von der ersten oder der
zweiten Abfrage ausgelöst wird, wodurch eine eventuell fehlerhafte Implementierung der Methode
nicht sichtbar wird.
Die einzige Möglichkeit, die mir dazu einfällt ist, dass ich in die Testmethode Ausgaben schreibe wie:
"Test 1 von 2", "Test 2 von 2". Dann bietet das Bestehen der Tests erst eine zuverlässige Aussage, wenn
alle Ausgaben in der Konsole vollständig sind.
//edit
Also auch die getter und setter Methoden in Airplane, die eine Esception werfen können?
Da aber zwei Abfragen in einer Testmethode implementiert werden sollen, würde ja die
erste, die eine Exception wirft, auch die Testmethode beenden, wobei die zweite nicht
ausgeführt wird. Wenn allerdings die erste Abfrage so angelegt wird, dass keine Exception
geworfen werden sollte, dann kann die zweite ihre Exception werfen.
Das @Test(expected = ...) kann jedoch nicht sehen, ob die Exception von der ersten oder der
zweiten Abfrage ausgelöst wird, wodurch eine eventuell fehlerhafte Implementierung der Methode
nicht sichtbar wird.
Die einzige Möglichkeit, die mir dazu einfällt ist, dass ich in die Testmethode Ausgaben schreibe wie:
"Test 1 von 2", "Test 2 von 2". Dann bietet das Bestehen der Tests erst eine zuverlässige Aussage, wenn
alle Ausgaben in der Konsole vollständig sind.
//edit
Bezieht sich "jede Methode" auf alle (von außen sichtbare) Methoden in Airplane und AirborneComputer?Schreiben Sie für jede Methode, die eine oder mehrere Exceptions erzeugen kann, einen weite-
ren Test mit je zwei Abfragen, der überprüft, ob die Exception(s) wie erwartet geworfen wird
beziehungsweise werden.
Also auch die getter und setter Methoden in Airplane, die eine Esception werfen können?
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!
- guido
- Computerversteher
- Beiträge: 378
- Registriert: 30. Nov 2003 21:24
- Wohnort: Mühltal
- Kontaktdaten:
Re: Übung 12 (verfrüht) online
Ja. Wenn ihr nicht alle erwischt, ist es aber wohl auch nicht schlimmKrümelmonster hat geschrieben: Bezieht sich "jede Methode" auf alle (von außen sichtbare) Methoden in Airplane und AirborneComputer?
Also auch die getter und setter Methoden in Airplane, die eine Esception werfen können?

Guido