Class DbUnitExtension
java.lang.Object
com.github.mjeanroy.dbunit.integration.jupiter.DbUnitExtension
- 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 DbUnitExtension
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 JUnit Jupiter extension for DbUnit.
Basically, this class will:
This extension can also be used with
Here is an example:
Basically, this class will:
- Read database configuration, configured with
DbUnitConnection, before all tests. - Run (optional) initialization scripts, configured with
DbUnitInit, before all tests. - Run (optional) liquibase changelogs, configured with
DbUnitLiquibase, before all tests. - Execute DbUnit SETUP operation, configured with
DbUnitSetup, before each test. - Load dataset, configured with
DbUnitDataSet, before each test. - Execute DbUnit TEARDOWN operation, configured with
DbUnitTearDown, before each test.
EmbeddedDatabaseExtension
to initiate an embedded database (HSQL or H2 database).
This extension can also be used with
RegisterExtension annotation as a static field or as an instance field.
Here is an example:
@ExtendWith({EmbeddedDatabaseExtension.class, DbUnitExtension.class})
@DbUnitConnection(url = "jdbc:hsqldb:mem:testdb", user = "SA", password = "")
@bUnitDataSet("classpath:/dataset/xml")
class MyDaoTest {
@Test
void test1() {
// ...
}
}
- 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 the extension.DbUnitExtension(JdbcConfiguration configuration) Create rule usingJdbcConfigurationinstance.DbUnitExtension(JdbcConnectionFactory factory) Create rule usingJdbcConnectionFactoryto create SQL Connection.DbUnitExtension(DataSource dataSource) Create rule usingDataSourceto create SQL Connection. -
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
-
DbUnitExtension
public DbUnitExtension()Create the extension. -
DbUnitExtension
Create rule usingJdbcConfigurationinstance. This constructor should be used withRegisterExtensionannotation.- Parameters:
configuration- JDBC Configuration.
-
DbUnitExtension
Create rule usingJdbcConnectionFactoryto create SQL Connection. This constructor should be used withRegisterExtensionannotation.- Parameters:
factory- JDBC Configuration.
-
DbUnitExtension
Create rule usingDataSourceto create SQL Connection. This constructor should be used withRegisterExtensionannotation.- Parameters:
dataSource- The datasource to use.
-
-
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
-