• 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'
    • 1
    • 2

    maven项目

    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <version>1.5.3.RELEASE</version>
        <scope>test</scope>
    </dependency>

    还需要依赖junit包,大家自行导入

    关键核心测试例子

    @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);
        }

    文件上传测试

        @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);
        }

    文件下载测试

        @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"));
            }
        }

    请求头信息传输测试

        @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);
        }
  • 相关阅读:
    谋哥:这个时代没有比程序员更适合创业
    《人人都可以创业》连载1:创业很简单,从心开始
    谋哥:悟马道长第一句话之“不要赚屌丝的钱”
    谋哥:App开发者的苦逼不值得怜悯!
    我们都傻不啦叽为《围住神经猫》免费推广!
    谋哥:转型之痒与App推广之痛
    学习IOS开发项目篇--如何让程序在后台保持挂起状态
    学习IOS开发项目篇--SDWebImage基本使用
    学习IOS开发网络多线程篇--NSThread/GCD/
    学习IOS开发UI篇--UICollectionViewController的基本使用
  • 原文地址:https://www.cnblogs.com/vianzhang/p/8028383.html
Copyright © 2020-2023  润新知