整合JUnit
@SpringBootTest
定义 Springboot04JunitApplicationTests
是一个测试类,里边支持注入对象,一旦注入后这个对象就可以参与到@Test
中了。
名称:@SpringBootTest
类型:测试类注解
位置:测试类定义上方
作用:设置JUnit加载的SpringBoot启动类
范例:
@SpringBootTest
class Springboot04JunitApplicationTests
总结:
1、导入测试对应的starter,在创建工程的时候就有了
2、测试类使用@SpringBootTest修饰
3、使用自动装配的形式添加要测试的对象
classes属性
在当我们将测试类的位置更换到上一级的目录中时,该测试类就不可用了。
如果当前的测试类在该项目的引导类所在的包或者子包下的话,即可不用管,但是如果测试类与引导类的位置不符合上述要求,测试类就拿不到spring容器,则需要引入classes属性
package com.zg;
import com.zg.dao.BookDao;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ContextConfiguration;
@SpringBootTest(classes = Springboot04JunitApplication.class)
//@ContextConfiguration(classes = Springboot04JunitApplication.class)
//上面两种方式均可以帮助测试类拿到spring容器
class Springboot04JunitApplicationTests {
//1、注入要测试的对象
@Autowired//先自动装配,把bookdao注入进来
private BookDao bookDao;
@Test
void contextLoads() {
//2、执行要测试的对象对应的代码
bookDao.save();
}
}
如果测试类在SpringBoot启动类的包或子包中,可以省略启动类的设置,也就是省略classes的设定