弹簧引导从控制器层怎么进行单元测试

  介绍

这篇文章主要讲解了弹簧引导从控制器层怎么进行单元测试,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。

单元测试是程序员对代码的自测,一般公司都会严格要求单元测试,这是对自己代码的负责,也是对代码的敬畏。

一般单元测试都是测试服务层、下面我将演示从控制器层进行单元测试。

无参控制器单元测试示例:

包com.pingan.bloan.genesis.controller.base;
  
  进口org.junit.After;
  进口org.junit.Before;
  进口org.junit.runner.RunWith;
  进口com.pingan.bloan.genesis.logwrapper.LogWrapper;
  进口org.springframework.boot.test.context.SpringBootTest;
  进口org.springframework.test.context.junit4.SpringRunner;
  进口com.pingan.bloan.genesis.logwrapper.LogWrapperFactory;
  进口org.springframework.test.context.web.WebAppConfiguration;
  
  @RunWith (SpringRunner.class)
  @SpringBootTest
  @WebAppConfiguration
  公开课BaseSpringBootTest {
  保护LogWrapper记录器=LogWrapperFactory.getLogWrapper (BaseSpringBootTest.class);
  
  @Before
  公共空间init () {
  logger.info(“开始测试…“);
  }
  
  @After
  公共空间后(){
  logger.info(“测试结束…“);
  }
  }
包com.pingan.bloan.genesis.controller;
  
  进口org.junit.Test;
  进口org.junit.Before;
  进口org.springframework.test.web.servlet.MockMvc;
  进口org.springframework.test.web.servlet.MvcResult;
  进口org.springframework.beans.factory.annotation.Autowired;
  进口org.springframework.test.web.servlet.setup.MockMvcBuilders;
  进口com.pingan.bloan.genesis.controller.base.BaseSpringBootTest;
  进口org.springframework.test.web.servlet.result.MockMvcResultHandlers;
  进口org.springframework.test.web.servlet.result.MockMvcResultMatchers;
  进口org.springframework.test.web.servlet.request.MockMvcRequestBuilders;/* *
  * DemoController测试
  * @author
  *
  */公开课DemoControllerTest延伸BaseSpringBootTest {
  @ autowired
  私人DemoController DemoController;
  
  私人MockMvc MockMvc;
  
  @Before
  公共空间设置(){
  mockMvc=MockMvcBuilders.standaloneSetup (demoController) .build ();
  }
  
  @Test
  公共空间演示()抛出异常{
  MvcResult MvcResult=mockMvc.perform (MockMvcRequestBuilders.get(“/演示/demo"))
  .isOk .andExpect (MockMvcResultMatchers.status () ())
  .andDo (MockMvcResultHandlers.print ())
  .andReturn ();
  
  .getContentAsString logger.info (mvcResult.getResponse () ());
  }
  }

<>强有参控制器单元测试示例一:

包com.pingan.bloan.genesis.controller;
  
  进口org.junit.Test;
  进口org.junit.Before;
  进口org.springframework.http.MediaType;
  进口org.springframework.test.web.servlet.MockMvc;
  进口org.springframework.test.web.servlet.MvcResult;
  进口org.springframework.beans.factory.annotation.Autowired;
  进口org.springframework.test.web.servlet.setup.MockMvcBuilders;
  进口com.pingan.bloan.genesis.controller.base.BaseSpringBootTest;
  进口org.springframework.test.web.servlet.result.MockMvcResultHandlers;
  进口org.springframework.test.web.servlet.result.MockMvcResultMatchers;
  进口org.springframework.test.web.servlet.request.MockMvcRequestBuilders;/* *
  *加解密控制器测试
  *
  * @author
  *
  */公开课MessageEncryptionControllerTest延伸BaseSpringBootTest {
  @ autowired
  私人MessageEncryptionController MessageEncryptionController;
  
  私人MockMvc MockMvc;
  
  @Before
  公共空间设置(){
  mockMvc=MockMvcBuilders.standaloneSetup (messageEncryptionController) .build ();
  }/* *
  *加密测试
  * @throws例外
  */@Test
  公共空间加密()抛出异常{
  MvcResult MvcResult=mockMvc.perform (MockMvcRequestBuilders.post(“/机密/encryption")
  .accept (MediaType.APPLICATION_JSON) .param (“originContent",“15221365094“))
  .isOk .andExpect (MockMvcResultMatchers.status () ())
  .andDo (MockMvcResultHandlers.print ())
  .andReturn ();
  
  .getContentAsString logger.info (mvcResult.getResponse () ());
  }/* *
  *解密测试
  * @throws例外
  */@Test
  公共空间破译()抛出异常{
  MvcResult MvcResult=mockMvc.perform (MockMvcRequestBuilders.post(“/机密/deciphering")
  .accept (MediaType.APPLICATION_JSON) .param (“secretContent",“4 bd6ee1a13593f97e6cea20a2ba9e6e4"))
  .isOk .andExpect (MockMvcResultMatchers.status () ())
  .andDo (MockMvcResultHandlers.print ())
  .andReturn ();
  
  .getContentAsString logger.info (mvcResult.getResponse () ());
  }
  }

弹簧引导从控制器层怎么进行单元测试