国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Java > 正文

SpringBoot DBUnit 單元測試(小結(jié))

2024-07-14 08:42:19
字體:
供稿:網(wǎng)友

DBunit 是一種擴(kuò)展于JUnit的數(shù)據(jù)庫驅(qū)動測試框架,它使數(shù)據(jù)庫在測試過程之間處于一種已知狀態(tài),如果一個測試用例對數(shù)據(jù)庫造成了破壞性影響,它可以幫助避免造成后面的測試失敗或者給出錯誤結(jié)果。

DBunit通過維護(hù)真實數(shù)據(jù)庫與數(shù)據(jù)集(IDataSet)之間的關(guān)系來發(fā)現(xiàn)與暴露測試過程中的問題。IDataSet 代表一個或多個表的數(shù)據(jù)。此處IDataSet可以自建,可以由數(shù)據(jù)庫導(dǎo)出,并以多種方式體現(xiàn),xml文件、XLS文件和數(shù)據(jù)庫查詢數(shù)據(jù)等。

基于DBUnit 的測試的主要接口是IDataSet,可以將數(shù)據(jù)庫模式的全部內(nèi)容表示為單個IDataSet 實例。這些表本身由Itable 實例來表示。

1. pom文件配置

    <dependency>       <groupId>org.springframework.boot</groupId>       <artifactId>spring-boot-starter-test</artifactId>     </dependency>    <dependency>      <groupId>com.github.springtestdbunit</groupId>      <artifactId>spring-test-dbunit</artifactId>      <version>1.3.0</version>      <scope>test</scope>    </dependency>    <dependency>      <groupId>org.dbunit</groupId>      <artifactId>dbunit</artifactId>      <version>2.5.3</version>    </dependency>

2. 由于spring-test-dbunit 的注解配置,導(dǎo)致 mockito 中的 @MockBean 失效,需要將 MockitoTestExecutionListener 和 DbUnitTestExecutionListener 配置到 @TestExecutionListeners 中

@RunWith(SpringRunner.class)@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)@AutoConfigureMockMvc@Transactional@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = true)@TestExecutionListeners({  DependencyInjectionTestExecutionListener.class,  DirtiesContextTestExecutionListener.class,  TransactionalTestExecutionListener.class,  MockitoTestExecutionListener.class,  DbUnitTestExecutionListener.class})@DatabaseSetup("/test-data.xml")public class OrderInfoControllerTest {}

3. DBUnit 的數(shù)據(jù)文件 xml 中允在空值的配置

package com.test; import com.github.springtestdbunit.bean.DatabaseConfigBean;import com.github.springtestdbunit.bean.DatabaseDataSourceConnectionFactoryBean;import javax.sql.DataSource;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration; /** * * @author walli */@Configurationpublic class DBUnitConfiguration {    private static final Logger LOGGER = LoggerFactory.getLogger(DBUnitConfiguration.class);    @Bean  public DatabaseConfigBean dbUnitDatabaseConfig() {    DatabaseConfigBean bean = new DatabaseConfigBean();    bean.setAllowEmptyFields(true);    return bean;  }   @Bean  public DatabaseDataSourceConnectionFactoryBean dbUnitDatabaseConnection(      DatabaseConfigBean dbUnitDatabaseConfig,      DataSource dataSource) {    DatabaseDataSourceConnectionFactoryBean bean = new DatabaseDataSourceConnectionFactoryBean(dataSource);    bean.setDatabaseConfig(dbUnitDatabaseConfig);        return bean;  }}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VeVb武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到JAVA教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 鄢陵县| 讷河市| 隆尧县| 双城市| 澜沧| 贵德县| 青田县| 濮阳县| 外汇| 江都市| 民勤县| 司法| 丹江口市| 巫山县| 乐昌市| 新乡市| 株洲市| 将乐县| 临漳县| 正宁县| 马龙县| 鸡泽县| 莒南县| 临西县| 凉城县| 八宿县| 扎鲁特旗| 荥阳市| 昌图县| 沛县| 顺平县| 屏东市| 岑巩县| 秭归县| 肃南| 乌鲁木齐县| 洱源县| 勃利县| 县级市| 涞水县| 景东|