NB-RCP-App. bzw. Teil-Code "schnell" testen

Alles zu NetBeans als RCP-Platform

Moderator: wegus

Antworten
meiJung
Beiträge: 5
Registriert: 05.09.2013, 13:17

NB-RCP-App. bzw. Teil-Code "schnell" testen

Beitrag von meiJung » 05.09.2013, 13:34

Hallo mitnand,

die Vorgehensweise "Code a bit, test a bit" ist ja bestimmt nicht so selten. Wie kann man das auf die Entwicklung einer NB-RCP-Anwendung anwenden? Es wär schon gut, nicht jedesmal die 5-20s clean&build und vor allem den Start der RCP-App-Instanz abwarten zu müssen. habt ihr ein zusatzliches "normales" Java-App-Projekt nebenher offen und pflanzt es erst dann in die RCP wenns in "normal" tut oder geht das nicht komfortabler? Danke für Tipps.

EDIT:
Also konkretes Anwendungsfall-Szenario: Ich habe in meinem FooDomain - Modul ein paar Klassen erstellt, und für ihre toString() Methode wollte ich die bequemerweise die universale ToStringBuilder.reflectionToString(this); von ApacheCommons/Lang benutzen.
Das wollt ich mir mal anschauen, in der guten alten main(){ ...} paar Objekte instanzieren und mir mit println ausgeben lassen.
Wie geht das bitte am geschicktesten ( wo ist überhaupt die main() ) oder muss ich jetzt tatsächlich für jeden Schnippsel die ganze RCP-App anschmeißen.
Ich habs jetzt mal so versucht, ein non-RCP-Java-Projekt zu erstellen, bei dem ich unter Libraries das Projekt "FooDomain" adde. jetzt kann ich wie erwartet importieren, und auch ein Objekt instanzieren. Beim Call der toString() schepperts jedoch:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang3/builder/ToStringStyle
Hat jemand eine Idee? Vielen Dank für eure Starthilfe.

Grüße
meiJung

ebaumann
Beiträge: 288
Registriert: 22.01.2009, 08:53
Wohnort: Würzburg
Kontaktdaten:

Re: NB-RCP-App. bzw. Teil-Code "schnell" testen

Beitrag von ebaumann » 06.09.2013, 07:28

Ich nutze JUnit. Mit dem Menü-Punkt "Tools > Create Tests" (ist bei mir Tastenkürzel Strg+Shift+U) ist schnell eine Testklasse erzeugt. Einführende Artikel über JUnit und Unit-Tests gibt es sicher viele im Web.

Ausgaben mit println() und Debugger-Durchläufe sind keine Tests. Die Unit-Tests lassen sich für eine gesamte Module Suite mit einem einzigen Mausklick (Ant-Task) starten. Insbesondere bei Refactoring sind gut geschriebene Tests ein Muss. Leider unterstützt die IDE nicht das Schreiben der Tests vor dem Implementieren, andernfalls würde ich die Test-First-Vorgehensweise zumindest ausprobieren. NetBeans signalisiert gut, ob die Unit-Tests fehlgeschlagen sind durch einen grünen Balken (ok), der teilweise rot wird (je nach Anteil fehlgeschlagener Tests).

meiJung
Beiträge: 5
Registriert: 05.09.2013, 13:17

Re: NB-RCP-App. bzw. Teil-Code "schnell" testen

Beitrag von meiJung » 06.09.2013, 19:36

danke für eine Antwort. Ok, der Thread-Titel ist irreführend.
Ich will also nicht "richtig" testen, sondern halt mal bestimmte Code-Abschnitte laufen lassen und ggf. auch mal reindebuggen um den Code in Aktion zu sehen.
Und das dauert halt mir halt zu lang da immer erst die ganze RCP-App mit dem Splash und Ladebalken hochfahren muss.

someDude
Beiträge: 8
Registriert: 12.09.2013, 19:27

Re: NB-RCP-App. bzw. Teil-Code "schnell" testen

Beitrag von someDude » 12.09.2013, 19:47

Habe mir schon die gleichen Gedanken gemacht und schließlich die von Netbeans automatisch erzeugten JUnit-Tests dafür zweckentfremdet.
Mini-Beispiel siehe hier ab Folie 9
http://de.slideshare.net/gembel_linux/s ... on#btnNext
In den Testmethoden (S.13) kannst du eigentlich tun und lassen was kompiliert, ohne dass die GUI der RCP-App startet und du hast deinen "Demo-Code" _nicht_ im Produktiv-Code.
Mit Control-Alt-f6 kannst du den Testcode auch Debuggen.
Wenns dann über die Modulgrenzen hinausgeht kann man wohl wie hier gezeigt einsteigen
https://platform.netbeans.org/tutorials/nbm-test.html

Bin aber auch neugierig wie es andere lösen.

Antworten