SpringBoot整合Junit

推荐先阅读Spring全家桶

可对比:Spring整合Junit

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
class Springboot07TestApplicationTests {

@Autowired
private BookService bookService;

@Test
public void save() {
bookService.save();
}
}

这里的引导类所在包必须是测试类所在包及其子包。

例如:

  • 引导类所在包是 com.itheima
  • 测试类所在包是 com.itheima

如果不满足这个要求的话,就需要在使用 @SpringBootTest 注解时,使用 classes 属性指定引导类的字节码对象。如 @SpringBootTest(classes = Springboot07TestApplication.class)

@RunWith就是一个运行器

@RunWith(JUnit4.class)就是指用JUnit4来运行

–@RunWith(SpringJUnit4ClassRunner.class),让测试运行于Spring测试环 境,以便在测试开始的时候自动创建Spring的应用上下文

@RunWith(Suite.class)的话就是一套测试集合

标准测试类里是要有@RunWith的,作用是告诉java你这个类通过用什么运行环境运行,例如启动和创建spring的应用上下文。否则你需要为此在启动时写一堆的环境配置代码

你在IDEA里去掉@RunWith仍然能跑是因为在IDEA里识别为一个JUNIT的运行环境,相当于就是一个自识别的RUNWITH环境配置。但在其他IDE里并没有。

所以,为了你的代码能在其他IDE里边正常跑,建议还是加@RunWith