Home

Mancanza mia, giuro! ma non ho trovato un esempio significativo di come fare test con ibatis + spring in eclipse. Non che non esistano esempi, ma quelli trovati erano incompleti. Ecco come ho fatto io.

Nella figura la struttura del mio progetto web.

Ho creato una nuova cartella di sorgenti ‘test’ in cui tenere tutte le classi di test. Per crearla: tasto destro sul nome progetto; dal menù contestuale “Build path” -> “configure build path”. Si apre la dialog delle properties. Selezionare la tab “Source” ed aggiungere una nuova cartella di sorgenti “Add folder…”. Io l’ho chiamata “test”. La si vede in figura.

Ho aggiunto una cartella lib in cui ho copiato i jar usati nei test: commons-dbcp, commons-pool, il driver jdbc per il database e spring-test.jar (che con tiene la classe AbstractTransactionalDataSourceSpringContextTests). Non basta copiare i file, poi si deve configurare di nuovo il “build path”. Più o meno come detto sopra, solo si usa la tab “library” e quindi si preme il tasto “add jar…” selezionando i 4 jar copiati nella cartella lib appena creata.

Nella nuova cartella di file sorgenti “test” ho creato i seguenti package:

  • test.config
  • test.data

In test.config ho copiato i miei file di progetto di Spring. Di solito divido tutto usando gli include, quindi ho il file con gli include (testApplicationContext.xml), il file con le configurazioni di ibatis e del datasource (app-config.xml) e il file con le definizioni dei DAO e della BusinessLogic (app-data.xml).

Il trucco è di creare delle classi di test che estendano oltre alle classi di jUnit, anche la AbstractTransactionalDataSourceSpringContextTests di Spring. Quindi: in test.data ho creato una classe abstract che ho chiamato BasicDaoTest che estende la AbstractTransactionalDataSourceSpringContextTests. Questa classe fa 2 cose: specifica quale file di configurazione di spring usare e fa si che ogni operazione eseguita dal Dao sul database, termina con una roll-back. Così si possono eseguire dei test sul database che non lascino traccia alcuna.

Qui, su sourceforge, i sorgenti

Lascia un commento

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...