Class DbUnitEmbeddedDatabaseExtension
java.lang.Object
com.github.mjeanroy.dbunit.integration.spring.jupiter.DbUnitEmbeddedDatabaseExtension
- All Implemented Interfaces:
org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.Extension, org.junit.jupiter.api.extension.ParameterResolver, org.junit.jupiter.api.extension.TestInstantiationAwareExtension
public class DbUnitEmbeddedDatabaseExtension
extends Object
implements org.junit.jupiter.api.extension.BeforeAllCallback, org.junit.jupiter.api.extension.AfterAllCallback, org.junit.jupiter.api.extension.BeforeEachCallback, org.junit.jupiter.api.extension.AfterEachCallback, org.junit.jupiter.api.extension.ParameterResolver
A simple and easy-to-use integration between DbUnit and spring
This extension will:
This extension can be used using
For example:
EmbeddedDatabase.
This extension will:
- Start and shutdown an
EmbeddedDatabasebefore all/after all tests (seeEmbeddedDatabaseExtension). - Manager DbUnit dataset (see
DbUnitExtension).
EmbeddedDatabaseExtension and DbUnitExtension internally, so there is not
need to use also these extensions here.
This extension can be used using
ExtendWith or RegisterExtension.
For example:
@DbUnitDataSet("/dataset")
@DbUnitSetup(DbUnitOperation.CLEAN_INSERT)
@DbUnitTearDown(DbUnitOperation.TRUNCATE_TABLE)
class MyDaoTest {
@RegisterExtension
static EmbeddedDatabaseExtension extension = new EmbeddedDatabaseExtension(
new EmbeddedDatabaseBuilder()
.generateUniqueName(true)
.addScript("classpath:/sql/init.sql")
.addScript("classpath:/sql/data.sql")
.build()
);
@Test
void test1(EmbeddedDatabase db) throws Exception {
Assertions.assertEquals(count(db.getConnection()), 2);
}
}
This extension can also be used with EmbeddedDatabaseConfiguration to configure the embedded database to use
during tests:
@EmbeddedDatabaseConfiguration(generateUniqueName = true, scripts = "classpath:/sql/init.sql")
@DbUnitDataSet("/dataset")
@DbUnitSetup(DbUnitOperation.CLEAN_INSERT)
@DbUnitTearDown(DbUnitOperation.TRUNCATE_TABLE)
class MyDaoTest {
@Test
void test1(EmbeddedDatabase db) throws Exception {
Assertions.assertEquals(count(db.getConnection()), 2);
}
}
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.junit.jupiter.api.extension.TestInstantiationAwareExtension
org.junit.jupiter.api.extension.TestInstantiationAwareExtension.ExtensionContextScope -
Constructor Summary
ConstructorsConstructorDescriptionCreate extension with default database or usingEmbeddedDatabaseConfigurationsettings.DbUnitEmbeddedDatabaseExtension(org.springframework.jdbc.datasource.embedded.EmbeddedDatabase db) Create extension with givenEmbeddedDatabase. -
Method Summary
Modifier and TypeMethodDescriptionvoidafterAll(org.junit.jupiter.api.extension.ExtensionContext context) voidafterEach(org.junit.jupiter.api.extension.ExtensionContext context) voidbeforeAll(org.junit.jupiter.api.extension.ExtensionContext context) voidbeforeEach(org.junit.jupiter.api.extension.ExtensionContext context) resolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) booleansupportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.junit.jupiter.api.extension.TestInstantiationAwareExtension
getTestInstantiationExtensionContextScope
-
Constructor Details
-
DbUnitEmbeddedDatabaseExtension
public DbUnitEmbeddedDatabaseExtension()Create extension with default database or usingEmbeddedDatabaseConfigurationsettings. -
DbUnitEmbeddedDatabaseExtension
public DbUnitEmbeddedDatabaseExtension(org.springframework.jdbc.datasource.embedded.EmbeddedDatabase db) Create extension with givenEmbeddedDatabase.- Parameters:
db- Embedded database.- Throws:
NullPointerException- Ifdbisnull.
-
-
Method Details
-
beforeAll
public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext context) - Specified by:
beforeAllin interfaceorg.junit.jupiter.api.extension.BeforeAllCallback
-
afterAll
public void afterAll(org.junit.jupiter.api.extension.ExtensionContext context) - Specified by:
afterAllin interfaceorg.junit.jupiter.api.extension.AfterAllCallback
-
beforeEach
public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context) - Specified by:
beforeEachin interfaceorg.junit.jupiter.api.extension.BeforeEachCallback
-
afterEach
public void afterEach(org.junit.jupiter.api.extension.ExtensionContext context) - Specified by:
afterEachin interfaceorg.junit.jupiter.api.extension.AfterEachCallback
-
supportsParameter
public boolean supportsParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws org.junit.jupiter.api.extension.ParameterResolutionException - Specified by:
supportsParameterin interfaceorg.junit.jupiter.api.extension.ParameterResolver- Throws:
org.junit.jupiter.api.extension.ParameterResolutionException
-
resolveParameter
public Object resolveParameter(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) throws org.junit.jupiter.api.extension.ParameterResolutionException - Specified by:
resolveParameterin interfaceorg.junit.jupiter.api.extension.ParameterResolver- Throws:
org.junit.jupiter.api.extension.ParameterResolutionException
-