C'è una via di database agnostico per fare questo se si utilizza Primavera insieme con Hibernate.
Assicurarsi che il contesto di applicazione verrà creato/distrutto prima/dopo ogni metodo di prova:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath*:application-context-test.xml"})
@TestExecutionListeners({DirtiesContextTestExecutionListener.class,
DependencyInjectionTestExecutionListener.class})
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
public abstract class AbstractTest {
}
Istruire Hibernate per l'auto creare lo schema all'avvio e per eliminare lo schema allo spegnimento:
hibernate.hbm2ddl.auto = create-drop
Ora, prima di ogni prova
- il contesto dell'applicazione è creato e la richiedono d fagioli primaverili sono iniettati (primavera)
- le strutture del database vengono create (ibernato)
- l'importazione.SQL viene eseguita se presente (ibernazione)
e dopo ogni prova
- il contesto dell'applicazione è distrutta (primavera)
- lo schema di database viene eliminato (Hibernate).
Se si utilizzano le transazioni, è possibile aggiungere lo TransactionalTestExecutionListener
.
Seguendo http://docs.oracle.com/javadb/10.8.1.2/getstart/rwwdactivity3.html come esempio, piuttosto che prendere e scartare semplicemente 'SQLException' potrebbe essere meglio scartarlo solo se' e.getSQLState() .equals ("08006") ' – Raedwald