我正在使用嵌入式数据库H2作为测试数据库。我为数据源配置创建了application-test.properties文件,并在test/resources
文件夹中为H2初始数据创建了data.sql文件。但是当我调用categoryRepository.findAll()
时在测试方法中,它返回空列表。我使用JUpiter版本。
#CategoryRepositoryTest.class
@DataJpaTest
@ExtendWith(SpringExtension.class)
@ActiveProfiles("test")
@AutoConfigureTestDatabase(replace = Replace.NONE)
public class CategoryRepositoryIntegrationTest {
@Autowired
private CategoryRepository categoryRepository;
@Test
void findAllCategories_notNull() {
List<Category> listCategories = this.categoryRepository.findAll();
assertThat(listCategories).isNotEmpty();
}
}
#application-test.properties
spring.main.banner-mode=off
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.url=jdbc:h2:mem:IBADBIDMB;DB_CLOSE_DELAY=-1
spring.datasource.hikari.minimumIdle=3
spring.datasource.hikari.maximumPoolSize=40
spring.datasource.hikari.idleTimeout=30000
spring.datasource.hikari.poolName=SpringBootJPAHikariCP
spring.datasource.hikari.driver-class-name=org.h2.Driver
spring.jpa.hibernate.ddl-auto=create
spring.jpa.database=h2
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.H2Dialect
#data.sql
insert into category(id,name,title,display_order) values (1,'mobile','Mobile',1);
insert into category(id,name,title,display_order) values (2,'internet','Internet',2);