zoukankan      html  css  js  c++  java
  • mock——test 基本所有使用

    可以参考:http://www.cnblogs.com/lyy-2016/p/6122144.html

    test

    /**
     * 
     */
    package com.imooc.web.controller;
    
    import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.delete;
    import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.fileUpload;
    import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
    import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
    import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.put;
    import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
    import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
    
    import java.time.LocalDateTime;
    import java.time.ZoneId;
    import java.util.Date;
    
    import org.junit.Before;
    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.http.MediaType;
    import org.springframework.mock.web.MockMultipartFile;
    import org.springframework.test.context.junit4.SpringRunner;
    import org.springframework.test.web.servlet.MockMvc;
    import org.springframework.test.web.servlet.setup.MockMvcBuilders;
    import org.springframework.web.context.WebApplicationContext;
    
    /**
     * @author zhailiang
     *
     */
    @RunWith(SpringRunner.class)
    @SpringBootTest
    public class UserControllerTest {
    
        @Autowired
        private WebApplicationContext wac;
    
        private MockMvc mockMvc;
    
        @Before
        public void setup() {
            mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
        }
        
        @Test
        public void whenUploadSuccess() throws Exception {
            String result = mockMvc.perform(fileUpload("/file")
                    .file(new MockMultipartFile("file", "test.txt", "multipart/form-data", "hello upload".getBytes("UTF-8"))))
                    .andExpect(status().isOk())
                    .andReturn().getResponse().getContentAsString();
            System.out.println(result);
        }
        
    
        @Test
        public void whenQuerySuccess() throws Exception {
            String result = mockMvc.perform(
                    get("/user").param("username", "jojo").param("age", "18").param("ageTo", "60").param("xxx", "yyy")
                            // .param("size", "15")
                            // .param("page", "3")
                            // .param("sort", "age,desc")
                            .contentType(MediaType.APPLICATION_JSON_UTF8))
                    .andExpect(status().isOk()).andExpect(jsonPath("$.length()").value(3))
                    .andReturn().getResponse().getContentAsString();
            
            System.out.println(result);
        }
    
        @Test
        public void whenGetInfoSuccess() throws Exception {
            String result = mockMvc.perform(get("/user/1")
                    .contentType(MediaType.APPLICATION_JSON_UTF8))
                    .andExpect(status().isOk())
                    .andExpect(jsonPath("$.username").value("tom"))
                    .andReturn().getResponse().getContentAsString();
            
            System.out.println(result);
        }
        
        @Test
        public void whenGetInfoFail() throws Exception {
            mockMvc.perform(get("/user/a")
                    .contentType(MediaType.APPLICATION_JSON_UTF8))
                    .andExpect(status().is4xxClientError());
        }
        
        @Test
        public void whenCreateSuccess() throws Exception {
            
            Date date = new Date();
            System.out.println(date.getTime());
            String content = "{"username":"tom","password":null,"birthday":"+date.getTime()+"}";
            String reuslt = mockMvc.perform(post("/user").contentType(MediaType.APPLICATION_JSON_UTF8)
                    .content(content))
                    .andExpect(status().isOk())
                    .andExpect(jsonPath("$.id").value("1"))
                    .andReturn().getResponse().getContentAsString();
            
            System.out.println(reuslt);
        }
        
        @Test
        public void whenCreateFail() throws Exception {
            
            Date date = new Date();
            System.out.println(date.getTime());
            String content = "{"username":"tom","password":null,"birthday":"+date.getTime()+"}";
            String reuslt = mockMvc.perform(post("/user").contentType(MediaType.APPLICATION_JSON_UTF8)
                    .content(content))
    //                .andExpect(status().isOk())
    //                .andExpect(jsonPath("$.id").value("1"))
                    .andReturn().getResponse().getContentAsString();
            
            System.out.println(reuslt);
        }
        
        @Test
        public void whenUpdateSuccess() throws Exception {
            
            Date date = new Date(LocalDateTime.now().plusYears(1).atZone(ZoneId.systemDefault()).toInstant().toEpochMilli());
            System.out.println(date.getTime());
            String content = "{"id":"1", "username":"tom","password":null,"birthday":"+date.getTime()+"}";
            String reuslt = mockMvc.perform(put("/user/1").contentType(MediaType.APPLICATION_JSON_UTF8)
                    .content(content))
                    .andExpect(status().isOk())
                    .andExpect(jsonPath("$.id").value("1"))
                    .andReturn().getResponse().getContentAsString();
            
            System.out.println(reuslt);
        }
        
        @Test
        public void whenDeleteSuccess() throws Exception {
            mockMvc.perform(delete("/user/1")
                    .contentType(MediaType.APPLICATION_JSON_UTF8))
                    .andExpect(status().isOk());
        }
    
    }
    View Code

    controller代码

    /**
     * 
     */
    package com.imooc.web.controller;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.servlet.http.HttpServletRequest;
    import javax.validation.Valid;
    
    import org.apache.commons.lang.builder.ReflectionToStringBuilder;
    import org.apache.commons.lang.builder.ToStringStyle;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.domain.Pageable;
    import org.springframework.data.web.PageableDefault;
    import org.springframework.security.core.annotation.AuthenticationPrincipal;
    import org.springframework.security.core.userdetails.UserDetails;
    import org.springframework.social.connect.web.ProviderSignInUtils;
    import org.springframework.validation.BindingResult;
    import org.springframework.web.bind.annotation.DeleteMapping;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.PutMapping;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.context.request.ServletWebRequest;
    
    import com.fasterxml.jackson.annotation.JsonView;
    import com.imooc.dto.User;
    import com.imooc.dto.UserQueryCondition;
    
    import io.swagger.annotations.ApiOperation;
    import io.swagger.annotations.ApiParam;
    
    /**
     * @author zhailiang
     *
     */
    @RestController
    @RequestMapping("/user")
    public class UserController {
        
        @Autowired
        private ProviderSignInUtils providerSignInUtils;
        
        @PostMapping("/regist")
        public void regist(User user, HttpServletRequest request) {
            
            //不管是注册用户还是绑定用户,都会拿到一个用户唯一标识。
            String userId = user.getUsername();
            providerSignInUtils.doPostSignUp(userId, new ServletWebRequest(request));
        }
        
        @GetMapping("/me")
        public Object getCurrentUser(@AuthenticationPrincipal UserDetails user) {
            return user;
        }
    
        @PostMapping
        @ApiOperation(value = "创建用户")
        public User create(@Valid @RequestBody User user) {
    
            System.out.println(user.getId());
            System.out.println(user.getUsername());
            System.out.println(user.getPassword());
            System.out.println(user.getBirthday());
    
            user.setId("1");
            return user;
        }
    
        @PutMapping("/{id:\d+}")
        public User update(@Valid @RequestBody User user, BindingResult errors) {
    
            System.out.println(user.getId());
            System.out.println(user.getUsername());
            System.out.println(user.getPassword());
            System.out.println(user.getBirthday());
    
            user.setId("1");
            return user;
        }
    
        @DeleteMapping("/{id:\d+}")
        public void delete(@PathVariable String id) {
            System.out.println(id);
        }
    
        @GetMapping
        @JsonView(User.UserSimpleView.class)
        @ApiOperation(value = "用户查询服务")
        public List<User> query(UserQueryCondition condition,
                @PageableDefault(page = 2, size = 17, sort = "username,asc") Pageable pageable) {
    
            System.out.println(ReflectionToStringBuilder.toString(condition, ToStringStyle.MULTI_LINE_STYLE));
    
            System.out.println(pageable.getPageSize());
            System.out.println(pageable.getPageNumber());
            System.out.println(pageable.getSort());
    
            List<User> users = new ArrayList<>();
            users.add(new User());
            users.add(new User());
            users.add(new User());
            return users;
        }
    
        @GetMapping("/{id:\d+}")
        @JsonView(User.UserDetailView.class)
        public User getInfo(@ApiParam("用户id") @PathVariable String id) {
    //        throw new RuntimeException("user not exist");
            System.out.println("进入getInfo服务");
            User user = new User();
            user.setUsername("tom");
            return user;
        }
    
    }
    View Code

    参考1:https://www.cnblogs.com/lyy-2016/p/6122144.html

    参考2:https://www.cnblogs.com/xiaohunshi/p/5706943.html

    参考3:https://blog.csdn.net/zhang289202241/article/details/62042842?locationNum=9&fps=1

  • 相关阅读:
    ubuntu 下安装memcache 以及php扩展
    js控制页面显示和表单提交
    phpcms--使用添加php原生支持
    phpcms v9 升级视频云问题推荐位不能添加
    phpcms—— 内容中的附件调用和添加远程地址的调用
    phpcms--模型管理,推荐位管理,类别管理
    linux shell 编程
    css中的定位和框模型问题
    php生成静态文件
    打印机问题win7 和xp
  • 原文地址:https://www.cnblogs.com/lshan/p/9080142.html
Copyright © 2011-2022 走看看