Jemmy ist ein hervorragendes Werkzeug zur Unterstützung von Unit-Tests von Swing-basierten-Anwendungen. Doch durch einen neuen Test, hing ein zuvor durchlaufender Testfall plötzlich tief unter JButtonOperator.clickMouse(), genau genommen in Queue.invokeAndWait().
In Unit-Tests werden immer wieder sogenannte Mock-Objekte benötigt, um zum vereinfachte Versionen der Objekte zu haben, mit dem der Test-Kandidat kommuniziert. Diese müssen aber zum einen sinnvoll auf Methoden-Aufrufe reagieren, so dass der Test-Kandidat überhaupt funktionieren kann. Und zum anderen muss teilweise geprüft werden, ob der Test-Kandidat an diesen Objekten bestimmte Methoden mit bestimmten Parametern gerufen hat.
Um es gleich vorweg zu sagen: Einzel-Pin-Steuerung in Java ist nicht sinnvoll möglich, da solche Funktionalität in einen Betriebssystem-Kernel gehört. Auf vielen modernen Betriebssystemen ist ein solcher Zugriff auch gar möglich bzw. spätestens das Interrupt-Handling dem Kernel vorbehalten. Der Lösungsweg soll daher auch genau auf diesem Wege erfolgen, also in Form eines Character-Device-Treibers für Linux 2.6.x. Dieser wird dann von …
Wer Perl- und bash-Scripte nach Java umschreiben soll, hat sich sicherlich dabei eine in Java implementierte Sammlung von UNIX-Tools wie grep, diff etc. gewünscht. Fündig wird man unter www.java2s.com.
Der aktuelle Stacktrace kann in Java ganz einfach mit Thread.currentThread().getStackTrace(); ermittelt werden. Doch darin enthalten ist dann auch die Methode getStackTrace() selbst.