JPA JUnit 5 Extensions
This extension allow you to run Jpa integration tests without having to start any EntityManagerFactory for each test class.
How to use it?
Add the following dependency to your project:
<dependency>
<groupId>io.github.jlmc</groupId>
<artifactId>jpa-junit5-extension</artifactId>
<version>1.1</version>
<scope>test</scope>
</dependency>
NOTE:
This project depends on:
- javax.persistence-api 2.2
- JUnit Jupiter 5.6.2
Add the @JpaTest annotation to your test class. By default, Jpa EntityManagerFactory will be started in the callback BeforeAllCallback#beforeAll. Using the @JpaTest annotation to your test class, allows you to inject an instance of EntityManager, EntityManagerFactory or JpaProvider for each execution of the test methods:
@JpaTest( persistenceUnit = "it" )
class JUnit5Test {
@JpaContext
private JpaProvider jpa;
@Test
void createBook() {
EntityManager em = jpa.em();
em.getTransaction().begin();
em.persist(new Book().setTitle("The Great Gatsby"));
em.getTransaction().commit();
em.close();
}
}