spring boot -编写测试用例
使用 junit 5
依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
boot 测试
@SpringBootTest
class BootMvcApplicationTests {
@Autowired
private UserService userService;
@Test
void contextLoads() {
userService.insert();
}
}
注意,测试类所在包名要和 spring boot 启动类包名一致, 不然使用 @SpringBootTest
注解 注入UserService会为 null
只启动 spring 容器
@Configuration
public class Config {
@Bean
public UserDo userDo(){
UserDo userDo = new UserDo();
userDo.setUserName("test");
return userDo;
}
}
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = Config.class)
public class Spring5Test {
@Autowired
private UserDo userDo;
// 使用 import org.junit.jupiter.api.Test
@Test
public void context(){
System.out.println(userDo);
System.out.println(userDo.getUserName());
}
}
注意, 使用的是 @ExtendWith(SpringExtension.class)
注解 !!
使用 junit 4
依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
boot 测试
@RunWith(SpringRunner.class)
@SpringBootTest
class BootMvcApplicationTests {
@Autowired
private UserService userService;
@Test
void contextLoads() {
userService.insert();
}
}
只启用 spring 容器
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = Config.class) //Config 同上
public class Sprin4Test {
@Autowired
private UserDo userDo;
// 用的是 junit4 中的 Test注解
@Test
public void context(){
System.out.println(userDo);
}
}
注意,使用的是 RunWith(SpringRunner.class)
!