Uebung 11

d4rk 3d3n
Erstie
Erstie
Beiträge: 14
Registriert: 27. Okt 2007 13:05

Uebung 11

Beitrag von d4rk 3d3n »

Ich hätte da mal ein Fragen zur elften Übung:

Wieso sind in den Testfiles Tests für Methoden die nicht existieren?
Soll das so interpretiert werden, dass wir diese Funktionen selber schreiben oder sollen wir diese Test ignorieren?

Schalli
Mausschubser
Mausschubser
Beiträge: 97
Registriert: 24. Okt 2006 21:50
Wohnort: Bayern

Re: Uebung 11

Beitrag von Schalli »

Also bei mir gab es nur Testfälle für existierende Methoden!

Habt ihr eventuell schon was umgeschrieben bevor ihr die Tests geschrieben habt?

Mfg Schalli

m_hof
Mausschubser
Mausschubser
Beiträge: 47
Registriert: 9. Jan 2005 13:37
Wohnort: Darmstadt

Re: Uebung 11

Beitrag von m_hof »

Hallo zusammen,

uns ist auch auf gefallen das folgende Methoden "fehlen":

SetRadius() in der Klasse Circle, sowie
SetWidth(), SetHeight() in der Klasse Rectangle

Selber erstellen?!

Danke und Grüße!

d4rk 3d3n
Erstie
Erstie
Beiträge: 14
Registriert: 27. Okt 2007 13:05

Re: Uebung 11

Beitrag von d4rk 3d3n »

Schalli hat geschrieben:Also bei mir gab es nur Testfälle für existierende Methoden!

Habt ihr eventuell schon was umgeschrieben bevor ihr die Tests geschrieben habt?
Die aktuellen Tests die momentan noch im rep stehen beschreiben auch Testfälle für fehlende Methoden. Deshalb die immer noch nicht geklärte Frage ob wir diese fehlenden Methoden selber implementieren sollen oder ob wir es einfach lassen können, da diese Methoden ziemlich überflüssig sind.

Schalli
Mausschubser
Mausschubser
Beiträge: 97
Registriert: 24. Okt 2006 21:50
Wohnort: Bayern

Re: Uebung 11

Beitrag von Schalli »

Ah, ok ich war etwas zu voreilig.

Naja nur weil die Testmethode zB. testSetRadius heißt, heißt es noch lange nicht, dass es auch einen Setter geben muss. Man kann auch die public radius setten ohne eine Settermethode. Die kommt dann später erst.

d4rk 3d3n
Erstie
Erstie
Beiträge: 14
Registriert: 27. Okt 2007 13:05

Re: Uebung 11

Beitrag von d4rk 3d3n »

Schalli hat geschrieben:Ah, ok ich war etwas zu voreilig.

Naja nur weil die Testmethode zB. testSetRadius heißt, heißt es noch lange nicht, dass es auch einen Setter geben muss. Man kann auch die public radius setten ohne eine Settermethode. Die kommt dann später erst.
Man könnte die Aufgabe auch so interpretieren, dass die Deklaration als public schlechter code ist und im Zuge des Refaktorings dieser Missstand behoben werden soll, deshalb müssen wir dann getter und setter erstellen für die dann "private int radius" und demzufolge auch diese Methoden Testen ob die ursprüngliche Funktion erhalten geblieben ist.

Das ist aber meiner Meinung ein sehr abstrakter Gedankengang.

Nachtrag:
Wir haben uns trotzdem dazu entschieden alle Variablen in "private" zu ändern, da das eigentlich guten Code ausmacht, wenn man Information-Hiding betreibt.

Schalli
Mausschubser
Mausschubser
Beiträge: 97
Registriert: 24. Okt 2006 21:50
Wohnort: Bayern

Re: Uebung 11

Beitrag von Schalli »

Naja wenn man die Aufgabenstellung liest, liest man auch dass man erst die Tests schreiben soll, und dann unter anderem das eben von euch beschriebene Refactoring durchführen soll ;)
Würde ja auch wenig Sinn machen erst danach zu testen und nicht zu wissen ob die Funktionalität gleich geblieben ist.

d4rk 3d3n
Erstie
Erstie
Beiträge: 14
Registriert: 27. Okt 2007 13:05

Re: Uebung 11

Beitrag von d4rk 3d3n »

Wie gesagt wir haben einfach im Zuge der Verbesserung der Codequalität erst (was eigentlich ziemlich sinnlos erscheint) auf das direkte ändern der public variablen getestet. Das Refactoring ändert aber diese direkten Zugriffe auch in den Tests in Abfragen über getter und setter und damit sind wir ziemlich zufrieden. Ich hoffe, dass das von den Tutoren akzeptiert wird.

Benutzeravatar
mansur
Windoof-User
Windoof-User
Beiträge: 30
Registriert: 14. Okt 2007 02:21

Re: Uebung 11

Beitrag von mansur »

hä?
also was ist jetzt? sollen wir die setter von hand rein machen oder nicht?

Wambolo
Computerversteher
Computerversteher
Beiträge: 381
Registriert: 18. Okt 2007 11:36

Re: Uebung 11

Beitrag von Wambolo »

Du musst das nicht per Hand erledigen, das geht auch per Refactoring. Versuch mal die Option Encapsulate Fields...

Antworten

Zurück zu „Archiv“