JAX: Spring und Testen
Meine letzte Session auf der Hauptkonferenz war zum Thema "Spring und Testen". Diese Session war mir ein besonderes Anliegen, denn ich glaube, viele der Technologien in Spring haben sehr viel mit Testen zu tun und diese Zusammenhänge sind nicht immer offensichtlich. So ist es noch recht klar, dass Dependency Injection dazu führt, dass man Anwendungen besser Unit testen kann. Aber auch der Test einer Klassen-Kollaboration ist mit Spring viel einfacher und auch das Aufräumen der Datenbank wird hier gut unterstützt.
Nich völlig trivial ist, dass Spring auch bei fachlichen Tests unterstützt, da mit Spring die Anwendung in Services aufgeteilte wird, also z.B. DAOs, Geschäftsprozesse usw. Diese Services sind zumindest in einigen Fällen Implementierungen von Geschäftsprozessen, die dann durch Fit oder Fitnesse getestet werden können. Dort habe ich dann auch kurz mein Fit Integration
Spring-Fitnesse vorgestellt.
Wesentlicher Vorteil, den man ebenfalls in all diesen Test-Arten hat, ist, dass Spring umgebungsunabhängig ist: Man kann die Tests in einer einfacher Umgebung ohne Application Server lassen, was das Testing wesentlich vereinfacht.
Auch bei System Tests hat Spring Vorteile: Durch AOP kann man sehr einfach in der Anwendung Fehler suchen, indem man Tracing einbaut, oder man kann Performance messen, indem man einen passenden Interceptor einbaut.
Ingesamt glaube ich daher, dass Spring eine deutliche Vereinfachung beim Testen sein kann und zwar weit über Unit-Tests hinaus.