Poster taggade med ‘junit’

Sida 2/2:12

Detta inlägg ingår i serien Spring från början och kommer att förklara designmönstren Inversion of Control (IoC) och Dependency Injection (DI).

Inversion of Control

Inversion of Control (IoC) är egentligen ett samlingsnamn på en mängd mönster. Dessa mönster uppträder ofta i ramverk. Huvudpoängen är att det inte är den egna applikationskoden som styr programflödet utan att detta sköts av ramverket. IoC är också lite informellt känt som ”Hollywood Principle” – ”don’t call us, We’ll call you.”
Läs mer >>

Att konfigurera upp rapporter för en modul i ett Maven 2-bygge är enkelt, man specificerar helt enkelt vilka rapporter som ska genereras i sin POM under report-taggen. Om ett projekt består av flera moduler (ett så kallat multimodule-project) vill man typiskt aggregera ihop rapporterna från de olika sub-modulerna, exempelvis en aggregerad vy över de JUnit-tester som körts. Detta stöd fanns för Maven 1.x via rapportpluginen Dashboard. Nu finns en någorlunda stabil version av denna plugin även för Maven 2.

Dashboard aggregerar följande rapporter:

Några övriga rapporter som kan vara intressanta:

  • JavaDoc – API-dokumentation
  • JXR – Källkoden i HTML-format (flera av rapporterna länkar till denna källkod)
  • JavaNCSS – Source code metrics
  • TagList – Listar TODO:s etc
  • FindBugs – Hittar potentiella buggar i din javakod
  • Changes – Skapar en lista över de förändringar som är gjorda baserad på det Issue Management system som används (ex JIRA)
  • ChangeLog – Skapar en change-log baserat på incheckningar i SCM

Kolla även in vilka rapporter och plugins som finns tillgängliga på Apache, SourceForge och Mojo.

Exempel
Nedanstående exempel visar hur några av de ovan nämnda rapporterna kan konfigureras in för ett multimodule projekt.
Läs mer >>

Kan det vara möjligt? Lasse Koskela guidade mig vidare till en intervju med Kent Beck. Intervjun i sig var väl inte någon höjdare, men i en mening säger Kent:

”Erich Gamma and I are working on a new JUnit release that will mark its first significant architectural changes since JUnit was very young.”

Jag tog en snabbtitt på när senaste versionen av JUnit (version 3.8.1) faktiskt släpptes, vilket nu är mer än två och ett halvt år sedan! Det ska bli spännande att se vad herrarna Beck & Gamma hittar på den här gången…!

Annars får man väl börja köra TestNG istället!

En intressant artikel som behandlar det ständigt återkommande problemet:

  1. hur stor del av min kod genomlöps av mina enhetstester
  2. är det möjligt eller ens önskvärt att testa all kod

Artiklen introducerar två verktyg Hansel och Gretel som hjälper dig att följa dina testfall.

Hansel är en utvidgning av JUnit som fixar kodtäckning genom att ”dekorera” dina testfall. Allt är förklarat i artikeln.

Bakgrund

När min artikel om Java Server Faces (JSF) var klar så kände jag ett behov av att ta den kod som som skrivits under arbetet med artikeln och låta den ligga till grund ytterligare artiklar. Dessa artiklar skulle beskriva glädjen (och vedermödorna) med att vidareutveckla designen i den tämligen enkla testapplikationen till något som på ett bättre sätt underlättade:

  • enhetstestning av koden
  • byte av perssistensmekanism. Den persistensmekanism som jag primärt var intresserad av var, förutom den som byggde på xml-filer i filsystemet som jag ärvde från strutsapplikationen, Hibernate. Ambitionen var att använda Hibernate dels direkt ifrån webappen, dels göra en distribuerad lösning där persistensen sköttes av Hibernate i en J2EE server (JBoss).

Läs mer >>

Sida 2/2:12