问题引入
今天在用IDEA写一个springboot测试的时候,碰到了一个问题。
@SpringBootTest
public class ServiceTest {
@Autowired
private IUserService userService;
@Test
public void testSelectById(){
User byId = userService.getById(1);
System.out.println(byId);
}
}
当我运行的时候发现这个报错:
很显然就是没有注入bean,但是我已经写了自动注入和定义bean;
解决
方法一:在测试类上添加注解@RunWith(SpringRunner.class)
方法二:把junit4改为版本5以上
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.6.3</version>
<scope>test</scope>
疑惑解答
方法一:
@RunWith就是一个运行器
@RunWith(SpringRunner.class)会让测试运行于Spring测试环境
所以就会找到bean
方法二:
在 idea 中 会自动生成的,但是前提是junit在版本5以上