Der EJB-Standard bringt eine Menge Vorteile mit sich: Concurrency und Security Handling, sowie Skalierbarkeit und deklarative Transaktionen – um nur einige zu nennen. Wenn es allerdings um die Testbarkeit geht, sieht sich der Entwickler einigen Unwägbarkeiten ausgesetzt. Ich möchte hier meine Erfahrungen in Sachen Testen von EJB-Applikationen teilen und verschiedene Optionen nennen und bewerten. “EJB 3.X Testing” weiter lesen »
Artikel-Schlagworte: „JUnit“
EJB 3.X Testing
Donnerstag, 23. Februar 2012Selenium und Proxyauthentifizierung
Mittwoch, 23. November 2011
In einem unserer Projekte haben wir eine Webanwendung erstellt, für die wir einen automatischen Integrationstest brauchten. Diese Webanwendung ist allerdings nur von bestimmten IP-Adressen zu erreichen, weshalb der Test seine Http-Requests durch einen Proxy leiten muss, der eine Authentifizierung erfordert. Eigentlich ein alltägliches Szenario: Schließlich soll nicht jeder Zugriff auf eine Applikation haben, bevor der Zeitpunkt des Livegangs gekommen ist. “Selenium und Proxyauthentifizierung” weiter lesen »
JUnit Rules
Donnerstag, 9. Juni 2011Dieser Beitrag soll auf ein Feature von JUnit hinweisen, das bereits seit der Version 4.7 (also seit ca. zwei Jahren) besteht, aber das ich bis vor kurzem leider nicht kannte. Vielleicht geht es dem geneigten Leser ja genauso – und dann lohnt es sich weiterzulesen, versprochen!
Zum ersten Mal gehört von JUnit Rules habe ich von Kent Beck selbst (nein, nicht persönlich, sondern in diesem Podcast
). Für die zwei Leute auf der Welt, die Unittests schreiben, aber nicht wissen, wer dieser Kent Beck sein soll, empfehle ich den Konsum des erwähnten Podcasts, da stellt sich der Großmeister am Anfang auch vor und erzählt noch andere wissenswerte Dinge über das Thema testgetriebene Entwicklung.
Kent Beck beschreibt JUnit Rules dort mit diesen Worten:
![]()
You should be able to just kind of read a test and it tells a story. And rules are a way of setting the stage of a test in a way that is obvious [...] but at the same time can be quite simple!
Hört sich verlockend an – nicht wahr?
Aber wie sieht das denn nun konkret aus?
Testdrive your WebApplication with Selenium WebDriver and PageObjects (Teil 1)
Montag, 9. Mai 2011Sucht man nach Möglichkeiten zum Testen von Webanwendungen, landet man relativ schnell bei Selenium, einem Framework, das vielen Anwendungsentwicklern bekannt sein dürfte. Hierbei werden Tests klassisch via capture & replay aufgezeichnet und wieder zum Ablauf gebracht. Dazu kann z.B. im Firefox das Selenium-IDE-Plugin verwendet werden. Die aufgezeichneten Tests werden standardmässig im HTML-Format gespeichert, können jedoch auch direkt in JUnit-Tests exportiert werden.
Da bei dieser Variante kaum mehr eigenhändiges Codieren der Tests notwendig ist, eignet sich dieses Verfahren für Szenarios, bei denen Tester nicht programmieren können oder sollen. Erfahrungsgemäß bleibt der Einstieg in den Code aber auch bei diesem Szenario nicht erspart, denn mitunter müssen noch wait() statements eingebaut werden, weil die Antwortszeiten zwischen den Rechnern der Tester und der Integrationsumgebung doch stark abweichen können. “Testdrive your WebApplication with Selenium WebDriver and PageObjects (Teil 1)” weiter lesen »
Unit-Tests im Spring Context mit JUnit und Mockito
Donnerstag, 24. März 2011Im täglichen Projektgeschäft kommt es noch immer vor, dass Entwickler und auch Projektleiter vom Nutzen von Tests überzeugt werden müssen. Um in einem Umfeld, in dem bis auf Tests durch die Qualitätssicherung noch keine oder nur Alibi-Tests vorliegen, ist es ratsam, nicht gleich den Big Bang zu starten und TDD (Test Driven Development) einführen zu wollen. Ratsam ist eine Orientierung an der klassischen Testpyramide, bei welcher Unit-Tests die Voraussetzung für weitere Tests darstellen.
Sind die Entwickler und Projektleiter einmal ins Boot geholt, muss eine zweite Hürde überwunden werden. Es muss den Entwicklern eine konfigurierte Umgebung zur Verfügung gestellt werden, in welcher diese ihre Tests ohne großen Aufwand schreiben und ausführen können. Welche Umgebung vonnöten ist, um im Spring 2.5 Context mit JUnit 4.4 und dem Mock-Framwork Mockito in Version 1.8.5 testen zu können, soll dieser Blogbeitrag klären.
“Unit-Tests im Spring Context mit JUnit und Mockito” weiter lesen »
JUnit mit Guice Test-Runnern
Montag, 17. Januar 2011Das Dependency Injection Framework Google Guice kann eine große Hilfe beim Testen mit JUnit sein. Es kann als dynamische Factory sowohl Mock-Objekte als auch Alternativ-Implementierungen bereitstellen und so den Einrichtungsaufwand erheblich verringern.
Koppelt man dieses Konzept mit eigenen Test-Runnern, ist das Ziel einer Zero-Config Test-Suite zum Greifen nahe.
Geteilte Test-Fixtures mit JUnit
Sonntag, 12. September 2010Die testgetriebene Entwicklung entfaltet ihre Wirkung am besten, wenn die Ausführungzeit der Tests kurz und das Ergebnis dementsprechend schnell verfügbar ist. Dieses schnelle Feedback ist gefährdet, wenn man für verschiedene Tests eine Ressource benötigt, deren Bereitstellung geraume Zeit (in der Softwareentwicklung gilt das bereits für einen Zeitraum von wenigen Sekunden) in Anspruch nimmt und die darüber hinaus am Ende “entsorgt” werden muss. “Geteilte Test-Fixtures mit JUnit” weiter lesen »