Integrationstesting

mankingwwe

Aktives Mitglied
Moin ,

ich habe folgende Methode --> siehe bild "methode.png"

Ich will diese Methode testen, aber weiß nicht genau wie... Kann mir jemand auf die Sprünge helfen?
Info: DevisenRequest --> enthält alle Werte die im Frontend ausgefüllt wurden. Es gibt zb ein Feld Währung1 und das ausgefüllte feld ist an den Wert w1 in DevisenRequest gekoppelt siehe Bild. Unterscheidet sich zu Devisen, weil eine Devise nur ein Datum hat und ein DevisenRequest kann nen Zeitraum haben den man im Frontend angeben kann.

Kann jemand sagen wie man das sinnvoll testen kann die methode "getByRequest"?
 

Anhänge

  • methode.PNG
    methode.PNG
    25,6 KB · Aufrufe: 26
  • Devisenrequest.PNG
    Devisenrequest.PNG
    55 KB · Aufrufe: 21
  • Devisen.PNG
    Devisen.PNG
    29,1 KB · Aufrufe: 26
  • getSQLContainerByRequest1.PNG
    getSQLContainerByRequest1.PNG
    132,3 KB · Aufrufe: 11
  • getSQLContainerByRequest2.PNG
    getSQLContainerByRequest2.PNG
    97 KB · Aufrufe: 15
  • getListbySql.PNG
    getListbySql.PNG
    14,2 KB · Aufrufe: 15

Neumi5694

Top Contributor
Man erstellt einen Testfalle, rechnet auf Papier aus, was rauskommen soll.
Dann - z.B. mit einem JUnit-Test, füttert man die Methode mit diesen Werten und schaut, ob das gleiche rauskommt.
Das wiederholt man nun für mehrere Fälle, auch solchen mit Extremparametern, wenn möglich auch mit nicht erlaubten Parametern. Dann nämlich soll ja z.B. eine Exception geworfen werden.
JUnit bietet hier die Assert Klasse.
Der Aufruf der Methoden hat normalerweise das Muster ("Fehlermeldung", ErwarteterWert, BerechnungsMethodenAufruf()), es gibt auch Variationen davon, wie "same" "equals" "notequal" "notsame".
Die Methoden werfen dann während der JUnit-Tests eine AssertException, wenn z.B. das Ergebnis nicht übereinstimmt.

Deine IDE sollte Unterstützung für solche Tests beinhalten..
 

KonradN

Super-Moderator
Mitarbeiter
Aber wirklich. Ich mach die Screenshots immer mit der Polaroid und das Bild wird gleich im Anschluss eingescannt.
Damit sabotierst du meinen Random Algorithmus! Ich nutze die Verzerrungen, die durch das Abfotographieren entstehen als Seed in meinem Algorithmus.

Bei dem Scan deiner Polaroids sind diese aber nicht vorhanden und damit schwächst du meinen Algorithmus!

Dass die Leute nie mitdenken können und so mutwillig Jahrzehnte an Security Forschung und Entwickung zerstören ...
 

httpdigest

Top Contributor
Wenn du vernünftige Antworten haben willst, dann poste gleich auf StackOverflow.
Das Problem wird nur sein, dass es da bei der niedrigen Qualität deiner Frage (ungeachtet der Tatsache, dass du Code per Screenshot postest) einfach Downvotes und Close-Requests hageln wird.
Deswegen bist du ja auch zum Java-Forum gekommen, weil du glaubtest, dass dir auf dein "Ich will diese Methode testen, aber weiß nicht genau wie..." und ein paar Screenshots besser geholfen wird.

Meist ist das auch hier der Fall, weil:
1. das hier ein (Diskussions-)Forum ist, um Leuten zu helfen, sich zu helfen. Deswegen entsteht hier dann auch meist eine Diskussion, die z.B. auch den Fragenden zu mehr Informationen auffordert.
2. Antwortende hier eher mehr Nachsehen mit Fragenden haben, bezüglich, wer eigentlich den meisten Aufwand betreiben sollte (der Fragende oder der Antwortende).

Aus deiner Frage zumindest geht überhaupt nicht hervor, wo du denn _genau_ jetzt nicht weiterkommst.
Du hast im Großen und Ganzen gefragt: "Wie teste ich eine Methode?"

Und daraufhin hat dir @Neumi5694 eine gute Antwort gegeben. Wenn du damit nicht einverstanden bist, dann bringt es auch nichts, auf bockig zu schalten, sondern eben einzusehen, dass deine Frage eine ungenügende Qualität aufweist, die du verbessern solltest. Oder zumindest solltest du nachfragen, warum du keine (aus deiner Sicht) für dich sinnvollen Antworten erhältst, und was _du_ dazu beitragen kannst, das aus deiner Sicht zu ändern.

Es gilt wie immer: Der Fragende will etwas haben/wissen, nicht die Antwortenden. Deswegen muss der Fragende auch die meiste Energie in das Thema stecken.

Und Leute sind sehr viel bereiter, jemandem zu helfen, der das Problem in einer guten Qualität für sie aufbereitet hat.
 

mrBrown

Super-Moderator
Mitarbeiter
@mankingwwe Wenn Du vernünftige Antworten willst, solltest du den Rat von @httpdigest beherzigen und deine Frage mit etwas mehr Mühe stellen :)

Allein die Screenshots dürften bei den meisten dazu führen, dass man die Frage einmal überfliegt und dann jeglichen Inhalt ignoriert - mindestens bei mir ist das der Fall, Screenshots gucke ich mir generell nicht wirklich an (erst recht nicht, wenn ein dunkles Theme benutzt wurde ;) )
Und die Frage ist halt wirklich auf einer Ebene von „Wie schreibe ich Tests“, viel mehr als „ruf die Methode auf und guck, dass das passende raus kommt“ kann man da nicht zu sagen. Niemand außer dir weiß, was die Methode machen soll - und dann sollen wir raten, was man da testen könnte? Da musst du schon selbst tätig werden, mindestens mit einer sinnvollen Erklärung der Methode und einer vernünftigen Fragestellung.
 

mankingwwe

Aktives Mitglied
@mankingwwe Wenn Du vernünftige Antworten willst, solltest du den Rat von @httpdigest beherzigen und deine Frage mit etwas mehr Mühe stellen :)

Allein die Screenshots dürften bei den meisten dazu führen, dass man die Frage einmal überfliegt und dann jeglichen Inhalt ignoriert - mindestens bei mir ist das der Fall, Screenshots gucke ich mir generell nicht wirklich an (erst recht nicht, wenn ein dunkles Theme benutzt wurde ;) )
Und die Frage ist halt wirklich auf einer Ebene von „Wie schreibe ich Tests“, viel mehr als „ruf die Methode auf und guck, dass das passende raus kommt“ kann man da nicht zu sagen. Niemand außer dir weiß, was die Methode machen soll - und dann sollen wir raten, was man da testen könnte? Da musst du schon selbst tätig werden, mindestens mit einer sinnvollen Erklärung der Methode und einer vernünftigen Fragestellung.

@"Wenn Du vernünftige Antworten willst, solltest du den Rat von @httpdigest beherzigen und deine Frage mit etwas mehr Mühe stellen :)"

Ich glaube wir haben hier nach wie vor ein Missverständnis. Ich hätte mich nicht beschwert, wenn niemand geantwortet hätte, weil die Frage doof gestellt wurde. Ich habe mich beschwert, weil hier unnötige Antworten gegeben wurden. Ich sage lediglich: Wenn mir eine Frage nicht passt, dann muss ich diese nicht mit inhaltsleeren Posts vollspammen. Sondern einfach ignorieren. Das wäre erwachsenes Verhalten. Man kann natürlich auch wie in diesem Fall Blödsinn reden. Das spricht aber nicht gerade für diese Leute.
 

Neumi5694

Top Contributor
@"Wenn Du vernünftige Antworten willst, solltest du den Rat von @httpdigest beherzigen und deine Frage mit etwas mehr Mühe stellen :)"

Ich glaube wir haben hier nach wie vor ein Missverständnis. Ich hätte mich nicht beschwert, wenn niemand geantwortet hätte, weil die Frage doof gestellt wurde. Ich habe mich beschwert, weil hier unnötige Antworten gegeben wurden. Ich sage lediglich: Wenn mir eine Frage nicht passt, dann muss ich diese nicht mit inhaltsleeren Posts vollspammen. Sondern einfach ignorieren. Das wäre erwachsenes Verhalten. Man kann natürlich auch wie in diesem Fall Blödsinn reden. Das spricht aber nicht gerade für diese Leute.
Genau das hättest du auch machen können, anstatt dieses Verhalten zu kommentieren, aber du hast dich offensichtlich dagegen entschieden.
 

mankingwwe

Aktives Mitglied
Genau das hättest du auch machen können, anstatt dieses Verhalten zu kommentieren, aber du hast dich offensichtlich dagegen entschieden.

Ich gebe zu, dass stimmt wohl.. Hätte sagen sollen, dass mich Themenfremde Kommentare stören und dann dann einfach den Rest ignorieren. Habe mich definitiv auch daneben benommen. Danke nochmal für deine Antwort bezüglich meiner Frage. Ging leider unter wegen dieser absolut unnötigen Diskussion und dem ewigen hin und her. Lasse es enden. Schönes Wochenende !
 

Neumi5694

Top Contributor
Ich gebe zu, dass stimmt wohl.. Hätte sagen sollen, dass mich Themenfremde Kommentare stören und dann dann einfach den Rest ignorieren. Habe mich definitiv auch daneben benommen. Danke nochmal für deine Antwort bezüglich meiner Frage. Ging leider unter wegen dieser absolut unnötigen Diskussion und dem ewigen hin und her. Lasse es enden. Schönes Wochenende !
Ja, das passiert hier hin und wieder, am besten ignorieren :)
Viel Erfolg noch.
 

Oben