Skip to content
This repository was archived by the owner on Nov 20, 2021. It is now read-only.

Spring Unit testing

PINGUET Julien edited this page Feb 5, 2015 · 1 revision

Spring: Unit testing

Annotations

Annoter la classe de test :

  • @RunWith(SpringJUnit4ClassRunner.class) : classe qui lancera les tests unitaires
  • @TestExecutionListeners({DependencyInjectionTestExecutionListener.class}) : injection
  • @ContextConfiguration(locations = "/applicationContext.xml") : chemin des fichiers de configuration

Pour activer les transactions, annoter la classe de test :

  • @TestExecutionListeners({TransactionalTestExecutionListener.class})
  • @Transactional (sinon Exception : javax.persistence.TransactionRequiredException: No transactional EntityManager available)

DbUnit

Annotation

Annoter la classe de test :

  • @TestExecutionListeners({DbUnitTestExecutionListener.class})
  • @DatabaseSetup("/dataset.xml") : chemin DU fichier de data set
    ⚠️ Plusieurs autorisés, mais seules les tables du 1er fichier sont vidés, donc problème de contraintes de clés primaires ou étrangères sur les suivants.

Mots clé reservés

Définir un caractère pour pouvoir utiliser des noms de table réservés. Par exemple la table Right sera utilisé sous le nom `Right`.

Déclarer les beans de configuration de DbUnit :

<bean id="dbUnitDatabaseConfig" class="com.github.springtestdbunit.bean.DatabaseConfigBean">
	<property name="escapePattern" value="`?`" />
</bean>

<bean id="dbUnitDatabaseConnection" class="com.github.springtestdbunit.bean.DatabaseDataSourceConnectionFactoryBean">
	<property name="dataSource" ref="dataSource" />
	<property name="databaseConfig" ref="dbUnitDatabaseConfig" />
</bean>

Clone this wiki locally