aufgabe 4

  • Themenstarter Themenstarter Heyoka955
  • Beginndatum Beginndatum
String testKorrektor = service.getBlatt(0).getZugeordneteAbgaben().get(1).getKorrektor().getName();
 
Warum denn dieses: service.getBlatt(0).getZugeordneteAbgaben().get(1)?

Willst du damit von Blatt 0 (was als lokale Variable schon existiert) die zweite Abgabe bekommen (welche es in zwei der drei Tests nicht gibt, und in dem anderem fast als lokale Variable)?

Was willst du mit dem Namen des Korrektors?
 
Das es zwischen dem was du machen willst und dem was du machst keinen Zusammenhang gibt.
aber tue ich nicht auf die namen zugreifen?
hmm okay hast recht, ich muss irgendwie auf die abgabe und den namen des Korrektors zugreifen, annst du mir als tipp sagen welche Klassen ich genau anschauen muss.
 
Zuletzt bearbeitet von einem Moderator:
aber tue ich nicht auf die namen zugreifen?
Doch, eben das tust du.

Aber "wie heißt du" ist nur selten eine sinnvolle Frage, wenn man wissen will, wie viel man arbeitet.

hmm okay hast recht, ich muss irgendwie auf die abgabe und den namen des Korrektors zugreifen, annst du mir als tipp sagen welche Klassen ich genau anschauen muss.
So ganz spontan würde ich mir dir Klasse Abgabe angucken, wenn es um Abgaben geht, aber nur so geraten.
Könntest dir auch die Klasse JComboBox angucken, die ist sicher auch interessant.
 
Warte mal eine Frage,

Wir sollen doch nur testen ob die Methode richtig zugeteilt hat oder ?

Wurde soeben bischen verwirrt?
 
Noch mal zur Erinnerung: Ihr sollt die Zuteilung per TDD erstellen. Und der wichtigste Punkt dabei ist, es sich erst mal einfach zu machen. Man könnte also erst mal eine Klasse "Zuordnung" anlegen, die eine Methode "int gib Stapelgrosse(Blatt b, Korrektor k);" enthält. Die Klasse "Zuordnungsservice" erhält nun eine Instanz von Zuordnung. Und schon kannst du programmieren: Wenn ich einen Korrektor habe und 2 Abgaben, dann soll "assertEqual(gibStapelgroesse(b,k);2);"(Kommte da ein Semicolon zwischen?) sein. Im ersten Cirde schreibt man da wirklich einfach "return 2;" rein. Der erste Test ist damit erfüllt, und es folgt der nächste. So einfach kann man sich das machen.

Später wird das Refactoring vielleicht sagen, dass "Zuordnung" gelöscht werden kann. aber das ergibt sich eben. Manchmal ist man da eben auf dem Holzweg.
 
Noch mal zur Erinnerung: Ihr sollt die Zuteilung per TDD erstellen. Und der wichtigste Punkt dabei ist, es sich erst mal einfach zu machen. Man könnte also erst mal eine Klasse "Zuordnung" anlegen, die eine Methode "int gib Stapelgrosse(Blatt b, Korrektor k);" enthält. Die Klasse "Zuordnungsservice" erhält nun eine Instanz von Zuordnung. Und schon kannst du programmieren: Wenn ich einen Korrektor habe und 2 Abgaben, dann soll "assertEqual(gibStapelgroesse(b,k);2);"(Kommte da ein Semicolon zwischen?) sein. Im ersten Cirde schreibt man da wirklich einfach "return 2;" rein. Der erste Test ist damit erfüllt, und es folgt der nächste. So einfach kann man sich das machen.

Später wird das Refactoring vielleicht sagen, dass "Zuordnung" gelöscht werden kann. aber das ergibt sich eben. Manchmal ist man da eben auf dem Holzweg.
Mein
Noch mal zur Erinnerung: Ihr sollt die Zuteilung per TDD erstellen. Und der wichtigste Punkt dabei ist, es sich erst mal einfach zu machen. Man könnte also erst mal eine Klasse "Zuordnung" anlegen, die eine Methode "int gib Stapelgrosse(Blatt b, Korrektor k);" enthält. Die Klasse "Zuordnungsservice" erhält nun eine Instanz von Zuordnung. Und schon kannst du programmieren: Wenn ich einen Korrektor habe und 2 Abgaben, dann soll "assertEqual(gibStapelgroesse(b,k);2);"(Kommte da ein Semicolon zwischen?) sein. Im ersten Cirde schreibt man da wirklich einfach "return 2;" rein. Der erste Test ist damit erfüllt, und es folgt der nächste. So einfach kann man sich das machen.

Später wird das Refactoring vielleicht sagen, dass "Zuordnung" gelöscht werden kann. aber das ergibt sich eben. Manchmal ist man da eben auf dem Holzweg.
Ah okay klingt simple
 
Noch mal zur Erinnerung: Ihr sollt die Zuteilung per TDD erstellen. Und der wichtigste Punkt dabei ist, es sich erst mal einfach zu machen. Man könnte also erst mal eine Klasse "Zuordnung" anlegen, die eine Methode "int gib Stapelgrosse(Blatt b, Korrektor k);" enthält. Die Klasse "Zuordnungsservice" erhält nun eine Instanz von Zuordnung.
Um die Frage mal zu wiederholen: was soll Zuordnung denn sein? Blatt, Abgabe, Korrektor sind in der Domäne klar, aber Zuordnung ist doch einfach nur die Beziehung von Abgabe zu Korrektor, die schon modelliert ist. (Und deine vorgeschlagene Methode sieht nicht wirklich nach eine Methode der Zuordnung selbst aus).

"assertEqual(gibStapelgroesse(b,k);2);"(Kommte da ein Semicolon zwischen?)
Na, das sind ganz normale Methodenaufrufe, da kommt nirgends einfach so ein Semikolon rein.
 
Weil man dich fragt, warum du von IntelliJ abrätst? 😵
Nein, ich denke einfach, weil es Off Topic ist. In einem Thread über die richtige Nutzung von TreeSets in Baumschulen würde ich auch nicht über IDEs diskutieren wollen....

Ansonsten muss ich sagen: IntelliJ taugt nichts wenn es um das Pflanzen von Bäumen geht. Da habe ich bei meinen Versuchen die besten Erfahrungen mit dem 11" MBA gemacht. Das Alu Gehäuse ist schön stabil und damit konnte ich ein Loch für einen Baum graben. Das Plastik Gehäuse meines Lenovo Laptops war da nicht geeignet....

Nur jetzt zurück zur Aufgabe: wie viele Bäume sollten jetzt vom TE gepflanzt werden? Und für was für Bäume hat er sich entschieden? (Aber die Entscheidung, statt Informatik Gartenbau zu machen, finde ich super! Da spielt der Inhalt der Vorlesungen und Übungen bezüglich Tests keine Rolle und es ist somit nicht schlimm, dass er gechillt hat statt diese Veranstaltungen zu besuchen...)
 
Um die Frage mal zu wiederholen: was soll Zuordnung denn sein? Blatt, Abgabe, Korrektor sind in der Domäne klar, aber Zuordnung ist doch einfach nur die Beziehung von Abgabe zu Korrektor, die schon modelliert ist. (Und deine vorgeschlagene Methode sieht nicht wirklich nach eine Methode der Zuordnung selbst aus).

Das hängt damit zusammen, wie ich die Aufgabe lösen würde. Im übertragenen Sinne erhält jeder Korrektor einen Stapel. also ein ArrayList. Momentan ist der Korrektor als 3. Argument von Abgabe deklariert. Ich würde daher dies so umformen, dass es eine Beziehung Kotrrektor-Abgaben gibt, wo für jeden Korrektor die Anzahl der zugeordneten Abgaben erkennbar ist. Auf den ersten Blick scheint das tatsächlich doppelt gedacht, würde für mich aber bei der Erstellung des Programmes helfen. Die die Methode abgabenZuordnen(id) selbst keinen Rückgabewert hat, würde ich als Kunstgriff eine Anzahl von Arrays befüllen- diese stellen dann die Stapel an Abgaben der einzelnen Korrektoren dar. Wenn jemand Äpfel verteilt, muss ich ja auch nicht den Verteiler testen, sondern in die Körbe der anderen schauen.

Soweit wäre mein Plan. aber ich weiß ja, dass sich das beim Erstellen auch ändern kann.
 
@Heyoka955: Das ist jetzt keine Erklärung für dich, also entweder nicht lesen oder nach dem Lesen wieder ignorieren.

Das hängt damit zusammen, wie ich die Aufgabe lösen würde. Im übertragenen Sinne erhält jeder Korrektor einen Stapel. also ein ArrayList. Momentan ist der Korrektor als 3. Argument von Abgabe deklariert. Ich würde daher dies so umformen, dass es eine Beziehung Kotrrektor-Abgaben gibt, wo für jeden Korrektor die Anzahl der zugeordneten Abgaben erkennbar ist. Auf den ersten Blick scheint das tatsächlich doppelt gedacht, würde für mich aber bei der Erstellung des Programmes helfen.

Bisher gibt's halt nur die Referenz von Abgabe zu Korrektor, alle Abgaben eines Korrektors würde man da über ein Repository/Service abfragbar machen. Sonst landet man bei unschönen Bidirektionalen Verbindungen.
Würdest du diese Beziehung mit einer bidirektionalen "Zuordnung" lösen?
Wenn man das macht, kann "Zuordnung" sich aber auch nicht selbst um die Zuordnung kümmern, da bräuchte man weiterhin einen Service für, sodass zumindest auf der Ebene nichts gewonnen wäre.

Eine "Zuordnung" wäre allerdings uU sinnvoll, um das als eigene Entität zu repräsentieren (wobei vielleicht ein anderer Name besser wäre, Bewertung vielleicht), dann hätte man Abgabe und Korrektor schöner getrennt, und könnte das auch als die von dir angesprochenen Rückgabe nutzen.

Die die Methode abgabenZuordnen(id) selbst keinen Rückgabewert hat, würde ich als Kunstgriff eine Anzahl von Arrays befüllen- diese stellen dann die Stapel an Abgaben der einzelnen Korrektoren dar.
Die "Rückgabe" hat man aktuell halt dann in den Abgaben stehen, um daraus eine Liste per Korrektor zu bekommen, muss man die halt einmal gruppieren, sollte kein Hexenwerk sein. Die Stapel der Korrektoren muss man ja sonst auch irgendwie abbilden, oder nur als lokale Variable zum zuweisen und danach ignorieren.

Wenn jemand Äpfel verteilt, muss ich ja auch nicht den Verteiler testen, sondern in die Körbe der anderen schauen.
Oder eher: um den Verteiler zu testen, muss man in die Körbe der anderen schauen.
 
habe eine Frage wäre es nicht möglich wenn ich über die Methode zugeordneteAbgabe Mit equals Anzahl der Stunden pruefe?
 
Also so
service.getBlatt(1).getZurgeordneteAbgaben().get(1) und dann das mit der Anzahl der Stunden vergleiche ?

Oder die Abgaben sind da alles in einer Size gespeichert, wenn ich sie size mit dem Anzahl der Stunden vergleiche müsste es doch klappen?

Wobei ich die obere mehr bevorzuge, denn dieses get(1) zeigt die erste Abgabe und wir wissen dass das eine Abgabe ist und wenn wir irgendwie über get(1) auf die Anzahl der Abgaben zugreifen können, würde das klappen.

Brauche eure Hilfe

Komme fast auf die loesunng
 
Zuletzt bearbeitet von einem Moderator:
Vergiss mal den Code und denke Dir das ganze einfach mal mit echten Personen und Blättern.

Das was du jetzt vor hast, ist aus dem Stapel Blätter das zweite Blatt zu ziehen, und das mit Stunden zu vergleichen.
Wie sinnvoll klingt das?
 
Ich hab @Heyoka955 auf einem Foto gefunden:

csm_1027739300_3b13f00268.jpg


(Nein, das bin nicht ich auf dem Bild, Nein, ich kenne den Urheber des Bilds nicht, Nein, ich habe mir im Vorfeld keine Erlaubnis eingeholt 😵 ich fands nur iwie witzig 😀)
 
Vergiss mal den Code und denke Dir das ganze einfach mal mit echten Personen und Blättern.

Das was du jetzt vor hast, ist aus dem Stapel Blätter das zweite Blatt zu ziehen, und das mit Stunden zu vergleichen.
Wie sinnvoll klingt das?
Garnicht sinnvoll,
Wie soll ich das mit echten Personen vorstellen
 
@kneitzel ist ein Korrektor, du hast bisher noch nichts Abgegeben.

Also, hier die Liste der Korrektoren: @kneitzel
Hier die Abgaben: (<- da steht nichts)


Die Angaben werden jetzt zugeteilt. Wie kannst du prüfen, ob das korrekt zugeteilt ist.
Ich zähle die Abgaben und die Anzahl seiner Stunden

Wenn keine Abgabe vorhanden ist dann ist das eine Sonderfall

Aber ansonsten Anzahl der Stunden und Abgaben Anzahl vergleichen
 
Das gefällt mir. An wen darf ich die Rechnung schreiben für die Abarbeitung des Stapels von mir zugewiesenen Abgaben?
 
Natürlich musst du was kontrollieren. Denn meiner Rechnung muss ich doch eine Bestätigung beilegen, dass ich mein Gewerk (Abarbeitung meines Stapels an Abgaben) erfüllt habe!
 
Du kontrollierst, ob kneitzel nichts gemacht hast, indem du prüfst, ob kneitzel gespeichert ist?

Wie ist speichert man einen Menschen? Am Stuhl festkleben?
OK, ich kündige den Werkvertrag. Wird mir zu gefährlich. 🙂

Aber die Begründung bezüglich 'muss ich etwas testen' ist trivial: wir schreiben einen Test. Muss man bei einem Test etwas testen'? Die Frage kann doch nur ja lauten, denn das Test mpliziert das ja schon.

Und statt Code zu schreiben würde ich das erst einmal formulieren. Ich habe 0 Abgaben und verteile diese auf einen Korrektor. Was ist das erwartete Resultat?

Aber sorry, dass ich hier den Thread nicht ernst nehmen kann. Eine Uni verlangt doch keine Unit Tests, wenn diese nicht in Vorlesungen und Übungen behandelt wurden. Gewisse Grundlagen müssen also doch da sein!

Und ich bestaune, wer hier noch helfen will. Meine Hilfe wäre schon vor einiger Zeit hier eine Liste von Verweisen .. wenn er sich die Grundlagen angeeignet hat, dann könnte man über Details reden ....
 

Zurück
Oben