使用@SpringBootTest注解进行单元测试
概述
@SpringBootTest注解是SpringBoot自1.4.0版本开始引入的一个用于测试的注解。基本用法如下:
1.添加Maven依赖
UTF-8 org.springframework.boot spring-boot-starter-parent 1.5.6.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test org.springframework.boot spring-boot-maven-plugin
2.编写启动入口类
@SpringBootApplication
publicclassStartUpApplication{
publicstaticvoidmain(String[]args){
SpringApplication.run(StartUpApplication.class,args);
}
}
3.编写Controller类
@RestController
publicclassHelloController{
@RequestMapping("/")
publicStringindex(){
return"HelloSpringBoot,Index!";
}
@RequestMapping(value="/test",method=RequestMethod.GET)
publicStringtest(){
return"SpringBootTestDemo!";
}
}
4.编写测试类
@RunWith(SpringRunner.class)
@SpringBootTest(classes=StartUpApplication.class,webEnvironment=SpringBootTest.WebEnvironment.RANDOM_PORT)
publicclassHelloControllerTest{
/**
*@LocalServerPort提供了@Value("${local.server.port}")的代替
*/
@LocalServerPort
privateintport;
privateURLbase;
@Autowired
privateTestRestTemplaterestTemplate;
@Before
publicvoidsetUp()throwsException{
Stringurl=String.format("http://localhost:%d/",port);
System.out.println(String.format("portis:[%d]",port));
this.base=newURL(url);
}
/**
*向"/test"地址发送请求,并打印返回结果
*@throwsException
*/
@Test
publicvoidtest1()throwsException{
ResponseEntityresponse=this.restTemplate.getForEntity(
this.base.toString()+"/test",String.class,"");
System.out.println(String.format("测试结果为:%s",response.getBody()));
}
其中,classes属性指定启动类,SpringBootTest.WebEnvironment.RANDOM_PORT经常和测试类中@LocalServerPort一起在注入属性时使用。会随机生成一个端口号。
总结
我们发现,随着Springboot版本的提升,单元测试变得更简单了。
到此这篇关于使用@SpringBootTest注解进行单元测试的文章就介绍到这了,更多相关@SpringBootTest单元测试内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。