zoukankan      html  css  js  c++  java
  • MockMvc 进行 controller层单元测试 事务自动回滚 完整实例

     1 package com.ieou.ms_backend.controller;
     2 
     3 import com.google.gson.Gson;
     4 import com.ieou.ms_backend.dto.account.CreateAccountReq;
     5 import org.junit.Before;
     6 import org.junit.Test;
     7 import org.junit.runner.RunWith;
     8 import org.springframework.beans.factory.annotation.Autowired;
     9 import org.springframework.boot.test.context.SpringBootTest;
    10 import org.springframework.http.MediaType;
    11 import org.springframework.test.annotation.Rollback;
    12 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
    13 import org.springframework.test.web.servlet.MockMvc;
    14 import org.springframework.test.web.servlet.MockMvcBuilder;
    15 import org.springframework.test.web.servlet.ResultActions;
    16 import org.springframework.test.web.servlet.ResultMatcher;
    17 import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
    18 import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
    19 import org.springframework.test.web.servlet.result.MockMvcResultHandlers;
    20 import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
    21 import org.springframework.test.web.servlet.setup.MockMvcBuilders;
    22 import org.springframework.transaction.annotation.Transactional;
    23 import org.springframework.web.context.WebApplicationContext;
    24 
    25 
    26 import static org.junit.Assert.*;
    27 
    28 /**
    29  * created by wyz on 2019/5/6
    30  */
    31 
    32 @SpringBootTest
    33 @RunWith(SpringJUnit4ClassRunner.class)
    34 public class AccountControllerTest {
    35 
    36     @Autowired
    37     private WebApplicationContext wac;
    38 
    39     private MockMvc mockMvc;
    40     private String url = "/ms_backend/account/";
    41 
    42     @Before
    43     public void setUp() throws Exception{
    44         //初始化MockMvc对象
    45         mockMvc = MockMvcBuilders.webAppContextSetup(wac).build();
    46     }
    47 
    48 
    49     //GET 请求
    50 
    51     @Test
    52     public void accountList() throws Exception {
    53 
    54         MockHttpServletRequestBuilder mockHttpServletRequestBuilder = MockMvcRequestBuilders.get(url + "accountList")
    55                 .param("companyName", "wang")
    56                 .header("access_token", "accessToken");
    57 
    58         mockHttpServletRequestBuilder.accept(MediaType.APPLICATION_JSON)
    59                 .contentType(MediaType.APPLICATION_JSON_UTF8);
    60 
    61         ResultActions resultActions = mockMvc.perform(mockHttpServletRequestBuilder);
    62         resultActions.andReturn().getResponse().setCharacterEncoding("UTF-8");
    63         resultActions.andExpect(MockMvcResultMatchers.status().isOk());
    64         resultActions.andDo(MockMvcResultHandlers.print());
    65     }
    66 
    67     @Test
    68     public void removeAccount() {
    69     }
    70 
    71     //post 请求  @RequestBody
    72 
    73     @Test
    74     @Transactional
    75     @Rollback() // 事务自动回滚,默认是true。可以不写
    76     public void createAccount() throws Exception {
    77 
    78         CreateAccountReq req = new CreateAccountReq();
    79 
    80         MockHttpServletRequestBuilder mockHttpServletRequestBuilder = MockMvcRequestBuilders.post(url + "createAccount")
    81                 .header("access_token", "accessToken");
    82 
    83         mockHttpServletRequestBuilder.accept(MediaType.APPLICATION_JSON)
    84                 .contentType(MediaType.APPLICATION_JSON_UTF8)
    85                 .content(new Gson().toJson(req)); // post请求
    86 
    87         ResultActions resultActions = mockMvc.perform(mockHttpServletRequestBuilder);
    88         resultActions.andReturn().getResponse().setCharacterEncoding("UTF-8");
    89         resultActions.andExpect(MockMvcResultMatchers.status().isOk());
    90         resultActions.andDo(MockMvcResultHandlers.print());
    91     }
    92 }
  • 相关阅读:
    Oracle SQL 函数
    j2me MIDP2.0 下实现split函数
    Linux Oracle 增量恢复时错误 ORA19573: 无法获得 exclusive 入队 (数据文件 5 的)
    Linux Oracle10 建立归档模式的详细过程
    j2me MIDP2.0 下实现的图片缩放函数
    linux下oracle10g建立归档模式 接连出现错误:ORA19905 ORA01078 LRM00109
    j2me下 触摸屏的开发 NetBeans 模拟器支持触摸屏
    高级程序员:你不可不知的20条编程经验(转载)
    生成规定大小的图片(缩略图生成)
    asp.net简单实现用button做按钮图片
  • 原文地址:https://www.cnblogs.com/wang-yaz/p/10820951.html
Copyright © 2011-2022 走看看