Übung 12 (verfrüht) online

Benutzeravatar
guido
Computerversteher
Computerversteher
Beiträge: 378
Registriert: 30. Nov 2003 21:24
Wohnort: Mühltal
Kontaktdaten:

Übung 12 (verfrüht) online

Beitrag von guido » 25. Jan 2008 09:46

Hallo allerseits,

die Übung 12 ist nun online.

Viele Grüße,

Guido

Benutzeravatar
taufrisch
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 107
Registriert: 30. Sep 2007 02:42
Wohnort: 127.0.0.1

Re: Übung 12 (verfrüht) online

Beitrag von taufrisch » 25. Jan 2008 10:52

Cool, vielen Dank. Gleich mal eine Frage:
Übung 12 hat geschrieben:5.1
Nachdem flyTo() aufgerufen wurde, muss dass Flugzeug noch mehr als 0 Liter Benzin haben.
Sind 0 Liter auch noch zulässig, also statt "mehr" "mindestens 0 Liter"?
Premature optimization is the root of all evil.

Don't anthropomorphize computers: They hate that.

Benutzeravatar
guido
Computerversteher
Computerversteher
Beiträge: 378
Registriert: 30. Nov 2003 21:24
Wohnort: Mühltal
Kontaktdaten:

Re: Übung 12 (verfrüht) online

Beitrag von guido » 25. Jan 2008 14:03

taufrisch hat geschrieben:Cool, vielen Dank. Gleich mal eine Frage:
Übung 12 hat geschrieben:5.1
Nachdem flyTo() aufgerufen wurde, muss dass Flugzeug noch mehr als 0 Liter Benzin haben.
Sind 0 Liter auch noch zulässig, also statt "mehr" "mindestens 0 Liter"?
Ja, das sollte auch noch OK sein.

Guido

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 12 (verfrüht) online

Beitrag von Krümelmonster » 25. Jan 2008 16:59

Sind die Assertions in Eclipse unter Java 1.6 im Normalfall aktiviert?

//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!

Benutzeravatar
Demmi
Kernelcompilierer
Kernelcompilierer
Beiträge: 423
Registriert: 1. Okt 2007 12:56
Wohnort: Darmstadt

Re: Übung 12 (verfrüht) online

Beitrag von Demmi » 25. Jan 2008 19:05

hättest du mal in der Vorlesung aufgepasst ^^
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.

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 12 (verfrüht) online

Beitrag von Krümelmonster » 25. Jan 2008 19:09

Hättest du mal die Frage verstanden ;)
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!

Benutzeravatar
Demmi
Kernelcompilierer
Kernelcompilierer
Beiträge: 423
Registriert: 1. Okt 2007 12:56
Wohnort: Darmstadt

Re: Übung 12 (verfrüht) online

Beitrag von Demmi » 25. Jan 2008 19:13

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 ;)
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.

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 12 (verfrüht) online

Beitrag von Krümelmonster » 25. Jan 2008 19:28

Danke, klappt prima.
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 12 (verfrüht) online

Beitrag von Krümelmonster » 26. Jan 2008 00:30

Aua, ich hab noch eine Frage, die wohl eher mit einem Unverständnis zusammenhängt. :oops:

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!

Benutzeravatar
guido
Computerversteher
Computerversteher
Beiträge: 378
Registriert: 30. Nov 2003 21:24
Wohnort: Mühltal
Kontaktdaten:

Re: Übung 12 (verfrüht) online

Beitrag von guido » 26. Jan 2008 09:17

Krümelmonster hat geschrieben:Aua, ich hab noch eine Frage, die wohl eher mit einem Unverständnis zusammenhängt. :oops:

In 5.2 sollen wir doch pro Methode eine Testmethode schreiben und in dieser mehrere Abfragen zusammenfassen, oder?
Ja, das ist ausreichend.
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?
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".

Guido

Benutzeravatar
s!mon
Computerversteher
Computerversteher
Beiträge: 373
Registriert: 20. Okt 2007 18:24
Wohnort: Höchst i. Odw

Re: Übung 12 (verfrüht) online

Beitrag von s!mon » 26. Jan 2008 13:11

Also werden Konstruktoren nicht getestet? Geht das überhaupt :P? Hatte gestern überlegt wie ich das machen soll.. mir ist aber nichts eingefallen..

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 12 (verfrüht) online

Beitrag von Krümelmonster » 26. Jan 2008 16:34

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)?
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

Benutzeravatar
guido
Computerversteher
Computerversteher
Beiträge: 378
Registriert: 30. Nov 2003 21:24
Wohnort: Mühltal
Kontaktdaten:

Re: Übung 12 (verfrüht) online

Beitrag von guido » 26. Jan 2008 16:56

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)?
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.

Guido

Benutzeravatar
Krümelmonster
Geek
Geek
Beiträge: 767
Registriert: 17. Okt 2007 13:58
Wohnort: Jossgrund

Re: Übung 12 (verfrüht) online

Beitrag von Krümelmonster » 26. Jan 2008 17:15

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
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.
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?
Stell deinen Fuß auf einen hohen Sockel
Mach dir ein Haar aus tausend Locken
Du bleibst doch immer, was du bist!

Benutzeravatar
guido
Computerversteher
Computerversteher
Beiträge: 378
Registriert: 30. Nov 2003 21:24
Wohnort: Mühltal
Kontaktdaten:

Re: Übung 12 (verfrüht) online

Beitrag von guido » 28. Jan 2008 09:58

Krü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?
Ja. Wenn ihr nicht alle erwischt, ist es aber wohl auch nicht schlimm :)

Guido

Antworten

Zurück zu „Archiv“