SpringBoot 2.2.0之前,默认使用Junit4,SpringBoot 2.2.0及以后,默认使用的时Junit5。从下面两张图可以看出。
1. SpringBoot+Junit4单元测试代码
package com.jinnyuxin;
import com.jinnyuxin.boot.SpringBootTestApplication;
import com.jinnyuxin.boot.service.UserService;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
/**
* @author 金余新
* @date 2021/1/7 16:36
*/
//当启动类与测试类包名不一致时,需要显示指定启动类,否则可以不指定
@SpringBootTest(classes = SpringBootTestApplication.class)
//以下这两个注解都可以使用
//@RunWith(SpringJUnit4ClassRunner.class)
@RunWith(SpringRunner.class)
public class SpringBootJunit4Test {
@Autowired
private UserService userService;
@org.junit.Test
public void testSayHello() {
userService.sayHello("hello4");
}
}
2. SpringBoot+Junit5单元测试代码
package com.jinnyuxin;
import com.jinnyuxin.boot.SpringBootTestApplication;
import com.jinnyuxin.boot.service.UserService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
/**
* @author 金余新
* @date 2021/1/7 16:45
*/
@SpringBootTest(classes = SpringBootTestApplication.class)
//下面两个注解是等价的,由于@SpringBootTest注解包含了@ExtendWith注解,所以使用Junit5下面两个注解可以不用加。
//@ExtendWith({SpringExtension.class})
//@SpringJUnitConfig
public class SpringBootJunit5Test {
@Autowired
private UserService userService;
@Test
public void testSayHello() {
userService.sayHello("hello5");
}
}