SpringBoot Test集成测试
Posted dounine
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot Test集成测试相关的知识,希望对你有一定的参考价值。
如何测试SpringBoot的请求?使用
spring-boot-starter-test
这个包即可完成测试,SpringBoot项目为什么需要测试本章不作过多说明,重点放在测试代码上。
使用说明
导包
gradle项目
compile group: 'com.fasterxml.jackson.jaxrs', name:'jackson-jaxrs-xml-provider',version:'2.5.0'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: '1.5.3.RELEASE'
testCompile group: 'junit', name: 'junit', version: '4.10'
maven项目
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.jaxrs</groupId>
<artifactId>jackson-jaxrs-xml-provider</artifactId>
<version>2.5.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>1.5.3.RELEASE</version>
<scope>test</scope>
</dependency>
核心测试例子
@RunWith(SpringRunner.class)
@SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@EnableAutoConfiguration
public class BBTestAA
@Autowired
private TestRestTemplate testRestTemplate;
//Application.class 为SpringBoot的启动入口类,每个SpringBoot项目大家都会配置
GET
请求测试
@Test
public void get() throws Exception
Map<String,String> multiValueMap = new HashMap<>();
multiValueMap.put("username","lake");//传值,但要在url上配置相应的参数
ActResult result = testRestTemplate.getForObject("/test/get?username=username",ActResult.class,multiValueMap);
Assert.assertEquals(result.getCode(),0);
POST
请求测试
@Test
public void post() throws Exception
MultiValueMap multiValueMap = new LinkedMultiValueMap();
multiValueMap.add("username","lake");
ActResult result = testRestTemplate.postForObject("/test/post",multiValueMap,ActResult.class);
Assert.assertEquals(result.getCode(),0);
file
文件上传测试
@Test
public void upload() throws Exception
Resource resource = new FileSystemResource("/home/lake/github/wopi/build.gradle");
MultiValueMap multiValueMap = new LinkedMultiValueMap();
multiValueMap.add("username","lake");
multiValueMap.add("files",resource);
ActResult result = testRestTemplate.postForObject("/test/upload",multiValueMap,ActResult.class);
Assert.assertEquals(result.getCode(),0);
file
文件下载测试
@Test
public void download() throws Exception
HttpHeaders headers = new HttpHeaders();
headers.set("token","xxxxxx");
HttpEntity formEntity = new HttpEntity(headers);
String[] urlVariables = new String[]"admin";
ResponseEntity<byte[]> response = testRestTemplate.exchange("/test/download?username=1",HttpMethod.GET,formEntity,byte[].class,urlVariables);
if (response.getStatusCode() == HttpStatus.OK)
Files.write(response.getBody(),new File("/home/lake/github/file/test.gradle"));
header
请求头信息传输测试
@Test
public void getHeader() throws Exception
HttpHeaders headers = new HttpHeaders();
headers.set("token","xxxxxx");
HttpEntity formEntity = new HttpEntity(headers);
String[] urlVariables = new String[]"admin";
ResponseEntity<ActResult> result = testRestTemplate.exchange("/test/getHeader?username=username", HttpMethod.GET,formEntity,ActResult.class,urlVariables);
Assert.assertEquals(result.getBody().getCode(),0);
PUT
信息修改
@Test
public void putHeader() throws Exception
HttpHeaders headers = new HttpHeaders();
headers.set("token","xxxxxx");
MultiValueMap multiValueMap = new LinkedMultiValueMap();
multiValueMap.add("username","lake");
HttpEntity formEntity = new HttpEntity(multiValueMap,headers);
ResponseEntity<ActResult> result = testRestTemplate.exchange("/test/putHeader", HttpMethod.PUT,formEntity,ActResult.class);
Assert.assertEquals(result.getBody().getCode(),0);
DELETE
删除信息
@Test
public void delete() throws Exception
HttpHeaders headers = new HttpHeaders();
headers.set("token","xxxxx");
MultiValueMap multiValueMap = new LinkedMultiValueMap();
multiValueMap.add("username","lake");
HttpEntity formEntity = new HttpEntity(multiValueMap,headers);
String[] urlVariables = new String[]"admin";
ResponseEntity<ActResult> result = testRestTemplate.exchange("/test/delete?username=username", HttpMethod.DELETE,formEntity,ActResult.class,urlVariables);
Assert.assertEquals(result.getBody().getCode(),0);
以上是关于SpringBoot Test集成测试的主要内容,如果未能解决你的问题,请参考以下文章