# Test mit Klassen



## Windows10 (11. Mrz 2016)

Wie legt man mit selbst programmierten Klassen einen Test an? Was müsste man bei folgendem Screenshot hinschreiben?


----------



## Xyz1 (11. Mrz 2016)

Eine Zahl. Strings mit "", alle anderen Objekte hereinziehen.
Postest du deine Klasse?


----------



## Blender3D (11. Mrz 2016)

Beispiel für Test findest Du hier. http://junit.org/


----------



## Xyz1 (11. Mrz 2016)

Ich glaub, er wollte einfach nur wissen, _*wie*_ er etwas in dieses Feld eintragen muss.


----------



## kneitzel (11. Mrz 2016)

Also die ganze Fragestellung scheint mir relativ konfus gewesen zu sein. Die Frage ist, was er denn da wie testen will. Das Bild zeigt irgend eine GUI, die ich nicht bewerten kann. Also der Hinweis zu junit ist schon generell richtig in meinen Augen wenn es um das Testen von Code geht. Testen von Oberflächen ist ein Schritt weiter. Da gibt es dann auch genug Tools für, aber ich bezweifle etwas, dass BlueJ (das ich nicht kenne) da irgendwelche Tools mitliefert. Da man aber die ganze Logik separat von der UI testen können sollte, sind die UI Tests nicht mehr so umfangreich, da lediglich Bindings und korrekte Anzeige getesten werden müssen aber keine Funktionalität mehr (Was aber auch extrem umfangreich sein kann!).


----------



## Xyz1 (11. Mrz 2016)

Argument/Parameter "Übergabe"/Eingabe ist auch gleich gut beschrieben:





sowie Seite 11 und ff. im deutschen Tutorial von bluej.

Edit: Bin ich mal nicht so, Argumente so eingeben:


----------



## kneitzel (12. Mrz 2016)

Ach so - die IDE bietet die Möglichkeit, eine Funktion aufzurufen und das wird als testen bezeichnet.

Das hat also mit den automatischen Tests über z.B. junit nichts zu tun.

Und mit was für Werten man seine Funktion aufrufen muss, um diese zu testen, liegt immer an der Funktion selbst. Es sollte sicher gestellt werden, dass durch die Tests
- der ganze Code geprüft wurde:
- alle wichtigen Fälle geprüft wurden (A.la. Zugriff auf erstes oder letztes Element). 
Dazu sind ggf. mehrere Aufrufe notwendig und das Ergebnis muss natürlich geprüft werden.

Und da kommt dann halt junit (oder ein vergleichbares Produkt) ins Spiel, denn statt manuell irgendwas aufzurufen und mehrere Werte einzugeben um dann das Ergebnis manuell zu prüfen kann man das alles direkt als Code schreiben. Und dann kann man die ganzen Tests auf Knopfdruck aufrufen und man hat dann ohne viel Aufwand alles geprüft.
Hinzu kommen ja oft auch Randbedingungen - so will man ggf. vor den Tests etwas vorbereiten oder so. Das kann man bei diesen Unit Tests auch alles machen, so dass man da relativ viel automatisiert hat.


----------



## Xyz1 (12. Mrz 2016)

kneitzel hat gesagt.:


> Ach so - die IDE bietet die Möglichkeit, eine Funktion aufzurufen und das wird als testen bezeichnet.



Richtig. Objekte können "erstellt", Methoden aufgerufen werden. BlueJ bietet das an. Schade, das "Anfänger" heutzutage gar nicht mehr mit BlueJ anfangen.

Testing ist schon ein eigenes Kapitel, AAAABER,... er sollte erst mal einfach "per Hand" ein paar Fälle testen, das ist für den Anfang schon genug, imo.

*bluej* org/*tutorial*/*blueJ*-*tutorial*-deutsch.pdf


----------

