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
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
EmbeddedDatabase
before 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);
}
}
-
Constructor Summary
ConstructorsConstructorDescriptionCreate extension with default database or usingEmbeddedDatabaseConfiguration
settings.DbUnitEmbeddedDatabaseExtension
(org.springframework.jdbc.datasource.embedded.EmbeddedDatabase db) Create extension with givenEmbeddedDatabase
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
afterAll
(org.junit.jupiter.api.extension.ExtensionContext context) void
afterEach
(org.junit.jupiter.api.extension.ExtensionContext context) void
beforeAll
(org.junit.jupiter.api.extension.ExtensionContext context) void
beforeEach
(org.junit.jupiter.api.extension.ExtensionContext context) resolveParameter
(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext) boolean
supportsParameter
(org.junit.jupiter.api.extension.ParameterContext parameterContext, org.junit.jupiter.api.extension.ExtensionContext extensionContext)
-
Constructor Details
-
DbUnitEmbeddedDatabaseExtension
public DbUnitEmbeddedDatabaseExtension()Create extension with default database or usingEmbeddedDatabaseConfiguration
settings. -
DbUnitEmbeddedDatabaseExtension
public DbUnitEmbeddedDatabaseExtension(org.springframework.jdbc.datasource.embedded.EmbeddedDatabase db) Create extension with givenEmbeddedDatabase
.- Parameters:
db
- Embedded database.- Throws:
NullPointerException
- Ifdb
isnull
.
-
-
Method Details
-
beforeAll
public void beforeAll(org.junit.jupiter.api.extension.ExtensionContext context) - Specified by:
beforeAll
in interfaceorg.junit.jupiter.api.extension.BeforeAllCallback
-
afterAll
public void afterAll(org.junit.jupiter.api.extension.ExtensionContext context) - Specified by:
afterAll
in interfaceorg.junit.jupiter.api.extension.AfterAllCallback
-
beforeEach
public void beforeEach(org.junit.jupiter.api.extension.ExtensionContext context) - Specified by:
beforeEach
in interfaceorg.junit.jupiter.api.extension.BeforeEachCallback
-
afterEach
public void afterEach(org.junit.jupiter.api.extension.ExtensionContext context) - Specified by:
afterEach
in 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:
supportsParameter
in 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:
resolveParameter
in interfaceorg.junit.jupiter.api.extension.ParameterResolver
- Throws:
org.junit.jupiter.api.extension.ParameterResolutionException
-