När man skriver integrationstester som går mot databasen är det ju viktigt att man ser till att varje test städar ordentligt efter sig. Datat i databasen skall vara identiskt före och efter integrationtestet. Det enklaste och vanligaste sättet att lösa detta på är att helt enkelt göra rollback när testet är klart.

Så långt inga problem, men vad händer i när man t.ex. har skrivit ett integrationstest för att återskapa en bugg? (TDD-biten som man är…) Innan man vet något om buggen vill man kanske undersöka hur datat ser ut någonstans mitt i testet. Man sätter en breakpoint på ett intressant ställe och låter testet stanna där. I det läget skulle man vilja öppna sin databasbrowser och undersöka hur datat ser ut. Men det går naturligtvis inte, eftersom transaktionen inte är committad.

Detta är ett problem som jag stött på många, många gånger. Jag har funderat en del på hur man skulle dela ut eller hijacka testets JDBC-connection på något sätt för att göra den blev tillgänglig för en extern databasbrowser, men jag har hittills inte hittat en tillräckligt enkel och bra lösning.

Tills nu! DataStorm är en enkel databasbrowser som man kan starta inifrån javakoden. DataStorm har utvecklats just för att förenkla (integrations-)testdriven utveckling mot databaser.

Jag har inte haft tillfälle att testa DataStorm skarpt än eftersom jag är på ganska nytt uppdrag. Men jag misstänker att det snart dyker upp ett passande tillfälle… Det verkar vara ett väldigt lovande verktyg!