Visit Linkwerk.com
Mar 30 2011

Attrappen für finale Methoden mit PowerMock

Wer in der Software-Entwicklung konsequent Unittests durchführt, will auch die Interaktion der Komponenten mit ihrer Umgebung testen. Diese Umgebung vor dem Test aufzubauen ist nicht immer praktikabel oder gar nicht möglich.

In diesem Fall bieten sich sogenannte Mock-Objekte an. Diese Attrappen simulieren das Verhalten komplexer Objekte, indem sie deren Schnittstelle implementieren und bei Methodenaufrufen vorher festgelegte Werte zurückliefern. In der Java-Programmierung verwenden wir dafür EasyMock. EasyMock erstellt nicht nur simple Attrappen von Schnittstellen, sondern ermöglicht beispielsweise auch die Überprüfung, ob bestimmte Methoden an den Mock-Objekten aufgerufen werden. Continue reading


Mar 4 2010

Cebit 2010: Qualität in der Softwareentwicklung

Auf großes Interesse ist der Linkwerk-Vortrag über Open-Source-Tools zur Qualitätssteigerung in der Software-Entwicklung gestoßen. Seit Anfang 2009 bauen wir unsere Maßnahmen zur Qualitätsverbesserung strukturiert durch Open-Source-Tools aus. Getreu unserem Motto, Know-how aus Erfahrung, bildet der Einsatz der genannten Tools in unseren Kundenprojekten die Basis für den heute auf der Cebit 2010 gehaltenen Vortrag.

Foto vom Cebit-Vortrag 2010. Quelle: http://twitpic.com/16jcvg

Foto vom Cebit-Vortrag 2010. Quelle: http://twitpic.com/16jcvg

Continue reading


Feb 11 2010

Das maven-release-plugin und Assemblies

Oft sind es die kleinen Dinge im Leben. Da hat man ein Problem, man frisst sich durch seitenweise Foren, Dokumentation, ist kurz vorm Verzweifeln, und schlussendlich lag die Lösung die ganze Zeit direkt vor einem. Aber von vorne … Continue reading


Sep 17 2009

Tests, HSQL und Apache DBCP

Wenn Software-Projekte auf Datenbanken angewiesen sind, wird das Testen oft unangenehm. Sollen Tests auf eine externe Datenbak angewiesen sein, und soll deren Adresse im Test-Code verankert liegen ? Elegant ist das nicht, und mit Embedded- und In-Memory-Datenbanken bietet sich eine gute Alternative. Continue reading


Sep 1 2009

Mylyn, Trac und die Authentifizierung …

Jüngst haben wir unser internes Trac-System inklusive aller genutzten Plugins erneuert. Inbesondere soll hier das XML-RPC-Plugin erwähnt werden. Nach Installation des neuen Tracs (Version 0.11.5 und Version 1.0.6 des Plugins) und der Migrierung aller Daten unseren alten Instanz, war als nächstes das Umstellen der Arbeitsplätze auf die neue Instanz an der Reihe.

Da wir viel mit Eclipse entwickeln liegt es nahe Mylyn einzusetzen, um mit unserem Trac zu interagieren. Doch beim Umstellen auf die neue Instanz und Validieren der Benutzerdaten antwortete Eclipse mit der folgenden Meldung

No Trac repository found at url: Required API calls are missing, please update your Trac XML-RPC Plugin to revision 1950 or later.

Abgesehen von neuen Versionen der Software und der Plugins kommt in der neuen Instanz die selbe Konfiguration zum Einsatz. Und nicht zuletzt entspricht die neue Version des XML-RPC-Plugins einer SVN-Revision jenseits der 6000, also definitv “1950 or later”.

Eine Suche nach der Fehlermeldung bringt einen auch erstmal nicht grossartig weiter. Nach längerer Suche war der Fehler aber dann doch gefunden. Eines der installierten Plugins ist der AccountManager, der es erlaubt Trac von HTTP Authentication auf Form-based Authentication umzustellen. Damit er sich mit dem Standard-Modul von Trac nicht in die Quere kommt, muss man dieses in der trac.ini mit dem Eintrag

[components]
trac.web.auth.LoginModule = disabled

deaktivieren. Der von Mylyn verwendete Trac Connector wiederum versucht aber, sich mit HTTP Authentication einzuloggen, die aber durch Form-based Authentication des Account-Manager-Plugins ersetzt wurde. Lösung für das Problem ist das HttpAuthPlugin, das es erlaubt konfigurierbare Pfade mit HTTP Authentication bereit zu stellen. Die nötigen Einträge in der trac.ini sind

[components]
httpauth.* = enabled

[httpauth]
paths = /xmlrpc, /login/xmlrpc

Damit sind nach einem Neustart von Trac die für die XML-RPC-Kommunikation nötigen Pfade mittels HTTP Authentication zugänglich, und der Trac-Connector funktioniert wieder wunderbar.

Im Grunde eine Kleinigkeit, aber letztendlich einer dieser Kleinigkeiten, die einen dann doch einen ganzen Tag kosten können. In der Hoffnung anderen diesen Aufwand zu ersparen, ist das Ganze hier festgehalten.