springbootTest 单测只启动jpa
时间: 2024-09-09 12:17:25 浏览: 68
SpringBoot 多模块 Serivce 层单元测试
在使用Spring Boot进行单元测试时,如果你只需要启动JPA(Java Persistence API)相关部分,而不启动整个应用上下文,你可以使用Spring Boot提供的`@DataJpaTest`注解。这个注解专门用于测试JPA层,它会禁用大部分自动配置,并且默认只扫描与JPA相关的组件,比如`@Entity`类和`JpaRepository`接口。
使用`@DataJpaTest`时,会自动配置一个内存数据库,并且默认使用H2数据库,这样就可以在测试中避免对实际的数据库造成影响。当然,你也可以通过配置属性来指定使用其他类型的内存数据库,如HSQLDB或Derby。
下面是一个简单的例子,展示了如何使用`@DataJpaTest`进行JPA相关的单元测试:
```java
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import static org.junit.jupiter.api.Assertions.assertNotNull;
@DataJpaTest
public class UserRepositoryTest {
@Autowired
private UserRepository userRepository;
@Test
public void testFindUserById() {
User user = userRepository.findById(1L).orElse(null);
assertNotNull(user);
}
}
```
在这个例子中,`UserRepository`是一个继承了`JpaRepository`接口的Spring Data JPA仓库接口,`User`是一个实体类。
阅读全文