Übungblatt 1 - Aufgabe 1.4 : JUnit - Erstellung von Testcases

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Übungblatt 1 - Aufgabe 1.4 : JUnit - Erstellung von Testcases
Hallo miteinander,

ich scheitere derzeit beim starten der Testcases… ich habe versucht 1:1 diese Beschreibung durchzuführen :

… aber in eclipse startet nichts…

was muss ich hier noch beachten/ durchführen damit ich die Testcases starten kann ?!


Hast du auch die JUnit-Library zum Classpath hinzugefügt? Geht mit “Java Build Path”->
“Libraries” → “Add Library”-> “JUnit”


Ich habe auch Probleme bei der ganzen Sache.
Ich habe jetzt den entpackten Ordner CheckerboardImpls in das passende Projekt meines Eclipse-Workspaces kopiert. Dann habe ich ,wie in der Aufgabe beschrieben, den Ordner ueber Add Class Folder hinzugefuegt.
Trotzdem bleibt bei mir der Fehler: “Checkerboard1/2/3/4 cannot be resolved to a type” bestehen. Hier ein Screenshot von den Properties:


hatte ich schon gemacht und schaut bei mir so wie auf meinem Screenshot wenn ich es ausführen will (siehe Anhang)

Attachment:
Screenshot (3).png: https://fsi.cs.fau.de/unb-attachments/post_130733/Screenshot (3).png


Sieht aus als wären die .java-Dateien nicht im “src”-Ordner, wo Eclipse allen Quellcode erwartet.


Bei mir sind die .java-Dateien im src-Ordner und es geht trotzdem nicht. Im Anhang sieht man meinen Package Explorer.

Attachment:
PFP_PackageExplorer_Add_Class_Folder.png: https://fsi.cs.fau.de/unb-attachments/post_130737/PFP_PackageExplorer_Add_Class_Folder.png


Das wiederum sieht so aus, als hättest du den Quellcode in ein package “uebung_01” verschoben.


D.h. man darf fuer diese Aufgabe kein package anlegen?
Tatsaechlich. Jetzt kommt kein Fehler mehr.
Danke



Das ist mir schon klar. Ich habe bisher in AuD die Aufgaben in Packages in Eclipse angelegt, die .java Dateien jedoch ohne die Zeile „package xyz“ abgegeben.
Ich meinte mit dem Satz, dass man die Aufgabe anscheinand gar nicht bearbeiten kann, wenn man die Dateien in einem package verwaltet?


Mal ins Blaue geraten: Vermutlich, weil ein [m]new Checkerboard1()[/m] dann nicht mehr aufgelöst werden kann, weil Checkerboard1 nicht im package ist.


ich habe es nun verschoben und nun schaut es so aus (siehe anhang)…

… ich werde das gefühl nicht los dass irgendwas nicht stimmt… oder sollte es so ausschauen wenn ich selber noch nichts an der aufgabe gemacht habe?

Attachment:
Screenshot (4).png: https://fsi.cs.fau.de/unb-attachments/post_130755/Screenshot (4).png


@sto

ich hatte ein ähnliches Problem.

Ich habe auch immer für jede Übung in AuD ein eigenes Package angelegt.

Das funktioniert aber hier irgendwie nicht.

In deinem speziellen Fall liegt es voraussichtlich daran wie du die .class Dateien hinzugefügt hast.

probier mal bei dir folgende Schritte aus:

  1. Checkerboard Dateien wieder entfernen - eventuell nur über den JavaBuildPath möglich
  2. über add external library im Java Build Path die .class dateien wieder hinzufügen - (siehe Screenshot anbei) (die .class Dateien können in einem beliebigen Ordner mit beliebig vielen anderen Dateien liegen)
  3. Deine Dateien CheckerboardTest und CheckerboardGenerator sollten schon passen (wichtig, diese dürfen kein package referenzieren und sollten automatisch im package default landen)
  4. wie es am ende aussehen sollte sieh Screenshot anbei

Attachment:
junitTesteg.png: https://fsi.cs.fau.de/unb-attachments/post_130757/junitTesteg.png

1 Like

weil ich irgendwie nur einen Screenshot anhängen kann hier der zweite Screenshot zum vorigen Eintrag

Attachment:
junitTesteg1.png: https://fsi.cs.fau.de/unb-attachments/post_130758/junitTesteg1.png


Ich versteh jetzt bloß nicht wie ich denn die Testcases der Aufgabe b) machen soll. Vom Prinzip her ist es mir klar wie man diese JUnit Tests macht. Das findet man ja auch in den Folien zur Übung. Aber wie komme ich jetzt darauf auf was ich testen soll? Aus der Aufgabenstellung kann ich nur auf einen Test schließen. " Dieses dient zur Erstellung von char-Arrays, die im Schachbrettmuster mit zwei Zeichen gefüllt sind, d.h. an jeder Stelle des 2D-Arrays befindet sich eines von zwei Zeichen, wobei sich zwei gleiche Zeichen niemals waagrecht oder senkrecht berühren dürfen."
Mit diesem Test kann ich jetzt aber nur eine der vier Checkerboard Klassen als falsch entlarven. Ich hab mir noch ein paar Tests ausgedacht, aber ohne Erfolg.

Aus den Checkerboard Klassen kann ich jetzt überhaupt nichts rauslesen. Da versteh ich wirklich nicht, was da steht…
Kann mir da wer einen Tipp geben wie ich das machen soll? :smiley:


@Hoschi letztendlich musst du raten…

Was eventuell hilft, bzw. was ich gemacht habe:
Schreibe ein “Dummy-Testcase”, welches dir alle Checkerboards ausgibt. (for-Schleifen mit System.out.print).

Mein Test der folgendes testet (die im Schachbrettmuster mit zwei Zeichen gefüllt sind, d.h. an jeder Stelle des 2D-Arrays befindet sich eines von zwei Zeichen, wobei sich zwei gleiche Zeichen niemals waagrecht oder senkrecht berühren dürfen.") entlarvt 2 der Testcases als falsch. - vielleicht solltest du deinen Test nochmal überprüfen

hoffe das hilft


Auch wenn ich PFP nicht belege und deswegen keine Ahnung habe, ob meine Lösung stimmt, wurde ein Testcase bei mir nach der Belegung mit neuen Zeichen entlarvt. Ein weiterer erwies sich mit dem Setzen der Länge vom Feld auf unterschiedliche Werte als falsch und dazu wurde ein Testcase bei mir dadurch entlarvt, dass sich 2 Zeichen berührt haben.

Befolge am besten den Ratschlag von [hedgehogs dilemma = 42].


@[hedgehogs dilemma = 42] Vielen Dank für die Tipps :slight_smile: Hat mir wirklich weiter geholfen

Bei mir siehts genauso aus.
Und dadurch hab ich - ich hoffe zumindest, dass das so richtig ist - wohl auch den dritten und letzten als falsch entlarvt. Danke Dir, Chayyam :slight_smile:

Ich hab mich glaube ich einfach zu stark an diesen Checkerboard Klassen aufgehalten, weil ich überhaupt nicht verstehe, was da vor sich geht ^^


Ich habe auch noch ne Frage.
Reichen drei ganz billige Tests, hauptsache bei den drei fehlerhaften Klassen schlaegt es mindestens einmal fehl und bei der korrekten nicht oder muss man sich viel Muehe geben und z.b. jeden Feldeintrag mit seinen Nachbarn vergleichen, obwohl auch schon ein Vergleich ausreichend waere?