Spring Batch + JUnit5 + DBUnit 环境搭建指南
搭建 Spring Batch + JUnit5 + DBUnit 环境的步骤如下:
- 配置 Spring Batch 在 pom.xml 中添加 Spring Batch 的依赖:
<dependency>
<groupId>org.springframework.batch</groupId>
<artifactId>spring-batch-core</artifactId>
<version>4.2.4.RELEASE</version>
</dependency>
- 配置 JUnit5 在 pom.xml 中添加 JUnit5 的依赖:
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.5.2</version>
<scope>test</scope>
</dependency>
- 配置 DBUnit 在 pom.xml 中添加 DBUnit 的依赖:
<dependency>
<groupId>org.dbunit</groupId>
<artifactId>dbunit</artifactId>
<version>2.7.0</version>
<scope>test</scope>
</dependency>
- 编写测试类
编写一个测试类,并在类上添加注解
@ExtendWith(SpringExtension.class),@SpringBootTest以及@ContextConfiguration注解,具体代码如下:
@ExtendWith(SpringExtension.class)
@SpringBootTest
@ContextConfiguration(classes = {TestConfig.class})
public class BatchTest {
@Autowired
private JobLauncher jobLauncher;
@Autowired
private Job job;
@Test
public void testBatch() throws Exception {
JobExecution jobExecution = jobLauncher.run(job, new JobParameters());
Assert.assertEquals(BatchStatus.COMPLETED, jobExecution.getStatus());
}
}
- 编写配置类 编写一个配置类 TestConfig,用于配置数据库连接和 DBUnit 的数据源,具体代码如下:
@Configuration
public class TestConfig {
@Bean
public DataSource dataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName('com.mysql.jdbc.Driver');
dataSource.setUrl('jdbc:mysql://localhost:3306/test');
dataSource.setUsername('root');
dataSource.setPassword('root');
return dataSource;
}
@Bean
public DatabaseDataSourceConnectionFactoryBean dbUnitDatabaseConnection() {
DatabaseDataSourceConnectionFactoryBean dbUnitDatabaseConnection = new DatabaseDataSourceConnectionFactoryBean();
dbUnitDatabaseConnection.setDataSource(dataSource());
dbUnitDatabaseConnection.setDatabaseConfig(dbUnitConfig());
dbUnitDatabaseConnection.setSchema('test');
return dbUnitDatabaseConnection;
}
@Bean
public DatabaseConfigBean dbUnitConfig() {
DatabaseConfigBean dbUnitConfig = new DatabaseConfigBean();
dbUnitConfig.setDatatypeFactory(new H2DataTypeFactory());
return dbUnitConfig;
}
@Bean
public DatabaseOperationLookup dbUnitDatabaseOperationLookup() {
return new DefaultDatabaseOperationLookup();
}
@Bean
public DatabaseTester dbUnitDatabaseTester() {
return new DataSourceDatabaseTester(dataSource());
}
@Bean
public IDatabaseConnection dbUnitIDatabaseConnection() throws Exception {
return dbUnitDatabaseConnection().getObject();
}
@Bean
public DatabaseDataSourceConnection dbUnitDatabaseDataSourceConnection() throws Exception {
return new DatabaseDataSourceConnection(dataSource());
}
@Bean
public DatabaseConfigBean dbUnitDatabaseConfig() {
DatabaseConfigBean dbUnitDatabaseConfig = new DatabaseConfigBean();
dbUnitDatabaseConfig.setAllowEmptyFields(true);
dbUnitDatabaseConfig.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new MySqlDataTypeFactory());
return dbUnitDatabaseConfig;
}
}
以上就是搭建 Spring Batch + JUnit5 + DBUnit 环境的步骤。
原文地址: https://www.cveoy.top/t/topic/o0ix 著作权归作者所有。请勿转载和采集!