用户综合分析系统: ------ RestTemplate单元测试

RestTemplate

RestTemplate是Spring提供的用于访问Rest服务的客户端,RestTemplate提供了多种便捷访问远程Http服务的方法,能够大大提高客户端的编写效率。

UserModelRestApplication

import org.mybatis.spring.annotation.MapperScan;
import org.mybatis.spring.annotation.MapperScans;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
@SpringBootApplication
@MapperScans(value = {@MapperScan(basePackages = "com.baizhi.dao")})
public class UserModelRestApplication {
    public static void main(String[] args) {
        SpringApplication.run(UserModelRestApplication.class, args);
    }

    @Bean
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }
}

Controler发布与测试

form表单参数接收FormUserController

import com.baizhi.controller.FormUserController;
import com.baizhi.entities.User;
import com.baizhi.service.impl.UserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
@RestController
@RequestMapping(value = "/formUserManager")
public class FormUserController{
    private static final Logger LOGGER = LoggerFactory.getLogger(FormUserController.class);
    @Autowired
    private UserService userService;

    @PostMapping(value = "/registerUser")
    public User registerUser(User user, @RequestParam(value = "multipartFile", required = false) MultipartFile multipartFile) throws IOException {
        if (multipartFile != null) {
            String fileName = multipartFile.getOriginalFilename();
            String suffix = fileName.substring(fileName.lastIndexOf("."));
            File tmpFile = File.createTempFile(fileName.substring(0, fileName.lastIndexOf(".")), suffix);
            System.out.println(tmpFile.getName());
            tmpFile.delete();
        }
        userService.saveUser(user);
        return user;
    }

    @PostMapping(value = "/userLogin")
    public User userLogin(User user) {
        return userService.queryUserByNameAndPassword(user);
    }

    @PostMapping(value = "/addUser")
    public User addUser(User user, @RequestParam(value = "multipartFile", required = false) MultipartFile multipartFile) throws IOException {
        if (multipartFile != null) {
            String fileName = multipartFile.getOriginalFilename();
            String suffix = fileName.substring(fileName.lastIndexOf("."));
            File tmpFile =
                    File.createTempFile(fileName.substring(0, fileName.lastIndexOf(".")), suffix);
            System.out.println(tmpFile.getName());
            tmpFile.delete();
        }
        userService.saveUser(user);
        return user;
    }

    @PutMapping(value = "/updateUser")
    public void updateUser(User user, @RequestParam(value = "multipartFile", required = false) MultipartFile multipartFile) throws IOException {
        if (multipartFile != null) {
            String fileName = multipartFile.getOriginalFilename();
            String suffix = fileName.substring(fileName.lastIndexOf("."));
            File tmpFile =
                    File.createTempFile(fileName.substring(0, fileName.lastIndexOf(".")), suffix);
            System.out.println(tmpFile.getName());
            tmpFile.delete();
        }
        //更新用户信息
        userService.updateUser(user);
    }

    @DeleteMapping(value = "/deleteUserByIds")
    public void delteUserByIds(@RequestParam(value = "ids") Integer[] ids) {
        userService.deleteByUserIds(ids);
    }

    @GetMapping(value = "/queryUserByPage")
    public List<User> queryUserByPage(@RequestParam(value = "page", defaultValue = "1") Integer pageNow,
                                      @RequestParam(value = "rows", defaultValue = "10") Integer pageSize,
                                      @RequestParam(value = "column", required = false) String column,
                                      @RequestParam(value = "value", required = false) String value) {
        HashMap<String, Object> results = new HashMap<>();
        results.put("total", userService.queryUserCount(column, value));
        results.put("rows", userService.queryUserByPage(pageNow, pageSize, column, value));
        return userService.queryUserByPage(pageNow, pageSize, column, value);
    }

    @GetMapping(value = "/queryUserCount")
    public Integer queryUserCount(@RequestParam(value = "column", required = false) String column,
                                  @RequestParam(value = "value", required = false) String value) {
        return userService.queryUserCount(column, value);
    }

    @GetMapping(value = "/queryUserById")
    public User queryUserById(@RequestParam(value = "id") Integer id) {
        //从数据库中查询
        return userService.queryUserById(id);
    }
}

RestTemplate测试FormUserControllerTests

import com.baizhi.UserModelRestApplication;
import com.baizhi.entities.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.io.FileSystemResource;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.util.HashMap;
import java.util.Map;
import static org.junit.Assert.assertNotEquals;
@SpringBootTest(classes = {UserModelRestApplication.class})
@RunWith(SpringRunner.class)
public class FormUserControllerTests {
    @Autowired
    private RestTemplate restTemplate;
    private String urlPrefix = "http://127.0.0.1:8888/formUserManager";

    /*
    @PostMapping(value = "/registerUser")
    public User registerUser(User user,
    @RequestParam(value = "multipartFile",required = false)
    MultipartFile multipartFile)
    */
    @Test
    public void testRegisterUser() {
        String url = urlPrefix + "/registerUser";
        //模拟表单数据
        MultiValueMap<String, Object> formData = new LinkedMultiValueMap<String, Object>();
        formData.add("name", "李李⼩小四");
        formData.add("password", "123456");
        formData.add("sex", "true");
        formData.add("birthDay", "2018-01-26");
        formData.add("photo", "user.png");
        formData.add("email", "1152926811@qq.com");
        //模拟⽂件上传
        FileSystemResource fileSystemResource = new
                FileSystemResource("/Users/admin/Desktop/head.png");
        formData.add("multipartFile", fileSystemResource);
        User user = restTemplate.postForObject(url, formData, User.class);
        assertNotEquals("⽤用户ID", user.getId());
    }

    /*
    @PostMapping(value = "/userLogin")
    public User userLogin(User user)
    */
    @Test
    public void testUserLogin() {
        String url = urlPrefix + "/userLogin";
        //模拟表单数据
        MultiValueMap<String, Object> formData = new LinkedMultiValueMap<String, Object>
                ();
        formData.add("name", "李李⼩小四");
        formData.add("password", "123456");
        User user = restTemplate.postForObject(url, formData, User.class);
        assertNotEquals("⽤用户ID", user.getId());
    }

    /*
    @PostMapping(value = "/addUser")
    public User addUser(User user,
    @RequestParam(value = "multipartFile",required = false)
    MultipartFile multipartFile) throws IOException
    */
    @Test
    public void testAddUser() {
        String url = urlPrefix + "/addUser";
        //模拟表单数据
        MultiValueMap<String, Object> formData = new LinkedMultiValueMap<String, Object>
                ();
        formData.add("name", "赵晓丽");
        formData.add("password", "123456");
        formData.add("sex", "true");
        formData.add("birthDay", "2018-01-26");
        formData.add("photo", "user.png");
        formData.add("email", "1152926811@qq.com");
        //模拟文件上传
        FileSystemResource fileSystemResource = new
                FileSystemResource("/Users/admin/Desktop/head.png");
        formData.add("multipartFile", fileSystemResource);
        User user = restTemplate.postForObject(url, formData, User.class);
    }

    /*
    @PutMapping(value = "/updateUser")
    public void updateUser(User user,
    @RequestParam(value = "multipartFile",required = false)
    MultipartFile multipartFile) throws IOException
    */
    @Test
    public void testUpdateUser() {
        String url = urlPrefix + "/updateUser";
        //模拟表单数据
        MultiValueMap<String, Object> formData = new LinkedMultiValueMap<String, Object>
                ();
        formData.add("id", "6");
        formData.add("name", "赵晓丽");
        formData.add("password", "123456");
        formData.add("sex", "true");
        formData.add("birthDay", "2018-01-27");
        formData.add("photo", "user1.png");
        formData.add("email", "1152926811@qq.com");
        //模拟文件上传
        FileSystemResource fileSystemResource = new
                FileSystemResource("/Users/admin/Desktop/head.png");
        formData.add("multipartFile", fileSystemResource);
        restTemplate.put(url, formData);
    }

    /*
    @DeleteMapping(value = "/deleteUserByIds")
    public void delteUserByIds(@RequestParam(value = "ids") Integer[] ids)
    */
    @Test
    public void testDeleteUser() {
        String url = urlPrefix + "/deleteUserByIds?ids={id}";
        Map<String, Object> parameters = new HashMap<String, Object>();
        parameters.put("id", "4,5,6");
        restTemplate.delete(url, parameters);
    }

    /*
    @GetMapping(value = "/queryUserByPage")
    public List<User> queryUserByPage(@RequestParam(value = "page",defaultValue = "1")
    Integer pageNow,
    @RequestParam(value = "rows",defaultValue =
    "10") Integer pageSize,
    @RequestParam(value = "column",required = false)
    String column,
    @RequestParam(value = "value",required = false)
    String value)
    */
    @Test
    public void testQueryUserByPage() {
        String url = urlPrefix + "/queryUserByPage?page={page}&rows={rows}&column={column}&value = {value} ";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("page", 1);
        params.put("rows", 10);
        params.put("column", "name");
        params.put("value", "⼩小");
        User[] users = restTemplate.getForObject(url, User[].class, params);
    }

    /*
    @GetMapping(value = "/queryUserCount")
    public Integer queryUserCount(@RequestParam(value = "column",required = false)
    String column,
    @RequestParam(value = "value",required = false)
    String value)
    */
    @Test
    public void testQueryUserCount() {
        String url = urlPrefix + "/queryUserCount?column={column}&value={value}";
        //模拟表单数据
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("column", "name");
        parameters.put("value", "晓");
        Integer count = restTemplate.getForObject(url, Integer.class, parameters);
    }

    /*
    @GetMapping(value = "/queryUserById")
    public User queryUserById(@RequestParam(value = "id") Integer id)
    */
    @Test
    public void testQueryUserById() {
        String url = urlPrefix + "/queryUserById?id={id}";
        //模拟表单数据
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("id", "2");
        User user = restTemplate.getForObject(url, User.class, parameters);
    }
}

json格式数据接收restUserManager

import com.baizhi.entities.User;
import com.baizhi.service.impl.UserService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
@RestController
@RequestMapping(value = "/restUserManager")
public class RestUserController {
    private static final Logger LOGGER = LoggerFactory.getLogger(RestUserController.class);
    @Autowired
    private UserService userService;

    @PostMapping(value = "/registerUser")
    public User registerUser(@RequestPart(value = "user") User user, @RequestParam(value = "multipartFile", required = false) MultipartFile multipartFile) throws IOException {
        if (multipartFile != null) {
            String fileName = multipartFile.getOriginalFilename();
            String suffix = fileName.substring(fileName.lastIndexOf("."));
            File tmpFile = null;
            try {
                tmpFile = File.createTempFile(fileName.substring(0, fileName.lastIndexOf(".")), suffix);
            } catch (IOException e) {
                e.printStackTrace();
            }
            System.out.println(tmpFile.getName());
            tmpFile.delete();
        }
        userService.saveUser(user);
        return user;
    }

    @PostMapping(value = "/userLogin")
    public User userLogin(@RequestBody User user) {
        return userService.queryUserByNameAndPassword(user);
    }

    @PostMapping(value = "/addUser")
    public User addUser(@RequestPart(value = "user") User user, @RequestParam(value = "multipartFile", required = false) MultipartFile multipartFile) throws IOException {
        if (multipartFile != null) {
            String fileName = multipartFile.getOriginalFilename();
            String suffix = fileName.substring(fileName.lastIndexOf("."));
            File tmpFile =
                    File.createTempFile(fileName.substring(0, fileName.lastIndexOf(".")), suffix);
            System.out.println(tmpFile.getName());
            tmpFile.delete();
        }
        userService.saveUser(user);
        return user;
    }

    @PutMapping(value = "/updateUser")
    public void updateUser(@RequestPart(value = "user") User user, @RequestParam(value = "multipartFile", required = false) MultipartFile multipartFile) throws IOException {
        if (multipartFile != null) {
            String fileName = multipartFile.getOriginalFilename();
            String suffix = fileName.substring(fileName.lastIndexOf("."));
            File tmpFile =
                    File.createTempFile(fileName.substring(0, fileName.lastIndexOf(".")), suffix);
            System.out.println(tmpFile.getName());
            tmpFile.delete();
        }
        //更新⽤用户信息
        userService.updateUser(user);
    }

    @DeleteMapping(value = "/deleteUserByIds")
    public void delteUserByIds(@RequestParam(value = "ids") Integer[] ids) {
        userService.deleteByUserIds(ids);
    }

    @GetMapping(value = "/queryUserById")
    public User queryUserById(@RequestParam(value = "id") Integer id) {
        //从数据库中查询
        return userService.queryUserById(id);
    }

    @GetMapping(value = "/queryUserByPage")
    public List<User> queryUserByPage(@RequestParam(value = "page", defaultValue = "1") Integer pageNow,
                                      @RequestParam(value = "rows", defaultValue = "10") Integer pageSize,
                                      @RequestParam(value = "column", required = false) String column,
                                      @RequestParam(value = "value", required = false) String value) {
        HashMap<String, Object> results = new HashMap<>();
        results.put("total", userService.queryUserCount(column, value));
        results.put("rows", userService.queryUserByPage(pageNow, pageSize, column, value));
        return userService.queryUserByPage(pageNow, pageSize, column, value);
    }

    @GetMapping(value = "/queryUserCount")
    public Integer queryUserCount(@RequestParam(value = "column", required = false) String column,
                                  @RequestParam(value = "value", required = false) String value) {
        return userService.queryUserCount(column, value);
    }
}

RestTemplate测试RestUserControllerTests

import com.baizhi.UserModelRestApplication;
import com.baizhi.entities.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.io.FileSystemResource;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import static org.junit.Assert.assertNotEquals;
@SpringBootTest(classes = {UserModelRestApplication.class})
@RunWith(SpringRunner.class)
public class RestUserControllerTests {
    @Autowired
    private RestTemplate restTemplate;
    private String urlPrefix = "http://127.0.0.1:8888/restUserManager";
    /*
    @PostMapping(value = "/registerUser")
    public User registerUser(@RequestPart(value = "user") User user,
    @RequestParam(value = "multipartFile",required = false)
    MultipartFile multipartFile) throws IOException {
    */
    @Test
    public void testRegisterUser() {
        String url = urlPrefix + "/registerUser";
        //模拟表单数据
        MultiValueMap<String, Object> formData = new LinkedMultiValueMap<String, Object>
                ();
        User user = new User("张晓磊磊", true, "123456", new
                Date(), "aa.png", "1152926811@qq.com");
        formData.add("user", user);
        //模拟文件上传
        FileSystemResource fileSystemResource = new
                FileSystemResource("/Users/admin/Desktop/head.png");
        formData.add("multipartFile", fileSystemResource);
        User registerUser = restTemplate.postForObject(url, formData, User.class);
        assertNotEquals("⽤用户ID", registerUser.getId());
    }

    /*
    @PostMapping(value = "/userLogin")
    public User userLogin(@RequestBody User user)
    */
    @Test
    public void testUserLogin() {
        String url = urlPrefix + "/userLogin";
        //模拟表单数据
        User user = new User();
        user.setName("张晓磊磊");
        user.setPassword("123456");
        User loginUser = restTemplate.postForObject(url, user, User.class);
        assertNotEquals("⽤用户ID", loginUser.getId());
    }

    /*
    @PostMapping(value = "/addUser")
    public User addUser(@RequestPart(value = "user") User user,
    @RequestParam(value = "multipartFile",required = false)
    MultipartFile multipartFile) throws IOException
    */
    @Test
    public void testAddUser() {
        String url = urlPrefix + "/addUser";
        //模拟表单数据
        MultiValueMap<String, Object> formData = new LinkedMultiValueMap<String, Object>
                ();
        User user = new User("温晓琪", true, "123456", new
                Date(), "aa.png", "1152926811@qq.com");
        formData.add("user", user);
        //模拟⽂件上传
        FileSystemResource fileSystemResource = new
                FileSystemResource("/Users/admin/Desktop/head.png");
        formData.add("multipartFile", fileSystemResource);
        User dbUser = restTemplate.postForObject(url, formData, User.class);
    }

    /*
    @PutMapping(value = "/updateUser")
    public void updateUser(@RequestPart(value = "user") User user,
    @RequestParam(value = "multipartFile",required = false)
    MultipartFile multipartFile) throws IOException {
    */
    @Test
    public void testUpdateUser() {
        String url = urlPrefix + "/updateUser";
        //模拟表单数据
        MultiValueMap<String, Object> formData = new LinkedMultiValueMap<String, Object>
                ();
        User user = new User("温晓琪", false, "123456", new
                Date(), "aa.png", "1152926811@qq.com");
        user.setId(9);
        formData.add("user", user);
        //模拟⽂文件上传
        FileSystemResource fileSystemResource = new
                FileSystemResource("/Users/admin/Desktop/head.png");
        formData.add("multipartFile", fileSystemResource);
        restTemplate.put(url, formData);
    }

    /*
    @DeleteMapping(value = "/deleteUserByIds")
    public void delteUserByIds(@RequestParam(value = "ids") Integer[] ids)
    */
    @Test
    public void testDeleteUser() {
        String url = urlPrefix + "/deleteUserByIds?ids={id}";
        Map<String, Object> parameters = new HashMap<String, Object>();
        parameters.put("id", "4,5,6");
        restTemplate.delete(url, parameters);
    }

    /*
    @GetMapping(value = "/queryUserByPage")
    public List<User> queryUserByPage(@RequestParam(value = "page",defaultValue = "1")
    Integer pageNow,
    @RequestParam(value = "rows",defaultValue =
    "10") Integer pageSize,
    @RequestParam(value = "column",required = false)
    String column,
    @RequestParam(value = "value",required = false)
    String value)
    */
    @Test
    public void testQueryUserByPage() {
        String url = urlPrefix + "/queryUserByPage?page={page}&rows={rows}&column= {column}&value={value}";
        Map<String, Object> params = new HashMap<String, Object>();
        params.put("page", 1);
        params.put("rows", 10);
        params.put("column", "name");
        params.put("value", "⼩小");
        User[] users = restTemplate.getForObject(url, User[].class, params);
    }

    /*
    @GetMapping(value = "/queryUserCount")
    public Integer queryUserCount(@RequestParam(value = "column",required = false)
    String column,
    @RequestParam(value = "value",required = false)
    String value)
    */
    @Test
    public void testQueryUserCount() {
        String url = urlPrefix + "/queryUserCount?column={column}&value={value}";
        //模拟表单数据
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("column", "name");
        parameters.put("value", "晓");
        Integer count = restTemplate.getForObject(url, Integer.class, parameters);
    }

    /*
    @GetMapping(value = "/queryUserById")
    public User queryUserById(@RequestParam(value = "id") Integer id)
    */
    @Test
    public void testQueryUserById() {
        String url = urlPrefix + "/queryUserById?id={id}";
        //模拟表单数据
        Map<String, Object> parameters = new HashMap<>();
        parameters.put("id", "2");
        User user = restTemplate.getForObject(url, User.class, parameters);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值