使用spring-test的单元测试
之前的单元测试是使用的junit4的单元测试,毕竟不是和spring挂钩的,所以测试起来非常麻烦。newioc实例,获取id为xxx的bean,然后还要强转,真的很麻烦。
导入spring-test的依赖包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.2.3.RELEASE</version>
</dependency>
测试类
import com.regbean.controller.BookController;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
//加载类路径下的spring配置文件
@ContextConfiguration(locations = "classpath:applicationContext.xml")
//使用spring的SpringJUnit4ClassRunner测试单元
@RunWith(SpringJUnit4ClassRunner.class)
public class Test02 {
@Autowired
private BookController bookController;
@Test
public void test01(){
bookController.saveBook();
}
}
结果
hahaha方法的形参bookDao已经自动注入完成。。。 正在调用service的saveBook方法。。。 正在调用bookDao的saveBook方法 已经存储图书。。。
spring提供的SpringJUnit4ClassRunner
测试单元非常的方便,不需要自己去new ioc容器实例,也不需要是使用ioc实例的getBean方法。