controllerTest.ftl 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. <#include "../function.ftl">
  2. <#assign class=model.variables.class>
  3. <#assign classVar=model.variables.classVar>
  4. <#assign sys=model.variables.sys>
  5. <#assign sysVar=model.variables.sys?cap_first>
  6. <#assign module=model.variables.module>
  7. <#assign sub=model.sub>
  8. <#assign foreignKey=convertUnderLine(model.foreignKey)>
  9. <#assign pk=getPk(model) >
  10. <#assign pkVar=getPkVar(model) >
  11. <#assign isBaseModule=model.variables.isBaseModule>
  12. <#if isBaseModule = 'true'>
  13. package com.${vars.cAlias}.${sys}.test.web.controller;
  14. <#else>
  15. package com.${vars.cAlias}.${sys}.${module}.test.web.controller;
  16. </#if>
  17. import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
  18. import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
  19. import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
  20. import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
  21. import javax.servlet.http.HttpServletRequest;
  22. import javax.annotation.Resource;
  23. import junit.framework.Assert;
  24. import org.junit.Test;
  25. import org.springframework.test.annotation.Rollback;
  26. import org.springframework.test.web.servlet.MvcResult;
  27. import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
  28. import org.springframework.web.servlet.ModelAndView;
  29. import com.${vars.cAlias}.base.core.constants.ActionCode;
  30. import com.${vars.cAlias}.base.core.entity.CommonResult;
  31. import com.${vars.cAlias}.base.web.converter.DateConverter;
  32. <#if isBaseModule = 'true'>
  33. import com.${vars.cAlias}.${sys}.domain.${class};
  34. import com.${vars.cAlias}.${sys}.repository.${class}Repository;
  35. import com.${vars.cAlias}.${sys}.persistence.entity.${class}Po;
  36. <#else>
  37. import com.${vars.cAlias}.${sys}.${module}.domain.${class};
  38. import com.${vars.cAlias}.${sys}.${module}.repository.${class}Repository;
  39. import com.${vars.cAlias}.${sys}.${module}.persistence.entity.${class}Po;
  40. </#if>
  41. public class ${class}ControllerTest extends JUnitControllerBase{
  42. @Resource
  43. ${class}Repository ${classVar}Repository;
  44. @Test
  45. @Rollback(true)
  46. public void testListData() throws Exception{
  47. // 执行URI对应的action
  48. String uri = "/storeadmin/${sys}/${module}/${classVar}/listData.do";
  49. ResultActions resultActions = mockMvc.perform((get(uri))).andExpect(status().isOk());
  50. MvcResult mvcResult = resultActions.andReturn();
  51. //返回body并打印
  52. String body = mvcResult.getResponse().getContentAsString();
  53. p(body);
  54. //将整个请求和返回全部打印
  55. resultActions.andDo(print());
  56. }
  57. @Test
  58. @Rollback(true)
  59. public void testEdit() throws Exception{
  60. String uri = "/storeadmin/${sys}/${module}/${classVar}/edit.do";
  61. //新增
  62. ResultActions resultActions = mockMvc.perform((get(uri))).andExpect(status().isOk());
  63. ModelAndView mav = resultActions.andReturn().getModelAndView();
  64. ${class}Po ${classVar}Po = (${class}Po) mav.getModel().get("${classVar}Po");
  65. Assert.assertNotNull(${classVar}Po);
  66. Assert.assertNull(${classVar}Po.getId());
  67. //编辑
  68. ${class} last${class} = ${classVar}Repository.getLast();
  69. if(last${class}!=null){
  70. resultActions = mockMvc.perform((get(uri).param("id",last${class}.getId()))).andExpect(status().isOk());
  71. mav = resultActions.andReturn().getModelAndView();
  72. ${classVar}Po = (${class}Po) mav.getModel().get("${classVar}Po");
  73. System.out.println(${classVar}Po);
  74. Assert.assertNotNull(${classVar}Po);
  75. }
  76. }
  77. @Test
  78. @Rollback(true)
  79. public void testSave() throws Exception{
  80. ${class} ${classVar} = ${classVar}Repository.getLast();
  81. if(${classVar}==null){
  82. return;
  83. }
  84. String uri = "/storeadmin/${sys}/${module}/${classVar}/save.do";
  85. MockHttpServletRequestBuilder builder = post(uri)
  86. <#list model.columnList as col><#assign columnName=convertUnderLine(col.columnName)>
  87. <#if col.isPK>.param("${columnName}",${classVar}.getData().get${columnName?cap_first}())<#else><#if col.colType="java.util.Date">.param("${columnName}", DateConverter.toString(${classVar}.getData().get${columnName?cap_first}()))<#if !col_has_next>;</#if><#elseif col.colType="char">.param("${columnName}",String.valueOf(${classVar}.getData().get${columnName?cap_first}()))<#if !col_has_next>;</#if><#elseif col.colType!="String">.param("${columnName}",${classVar}.getData().get${columnName?cap_first}().toString())<#if !col_has_next>;</#if><#else>.param("${columnName}",${classVar}.getData().get${columnName?cap_first}())<#if !col_has_next>;</#if></#if></#if>
  88. </#list>
  89. //执行和返回Body
  90. CommonResult commonResult = executeCommonResult(builder);
  91. Assert.assertTrue(commonResult.isSuccess());
  92. Assert.assertEquals(ActionMsgCode.CREATE.name(), commonResult.getMsgCode());
  93. builder.param("id",${classVar}.getId())
  94. .param("createBy", ${classVar}.getData().getCreateBy())
  95. .param("createTime", DateConverter.toString(${classVar}.getData().getCreateTime()));
  96. //执行和返回Body
  97. commonResult = executeCommonResult(builder);
  98. Assert.assertTrue(commonResult.isSuccess());
  99. Assert.assertEquals(ActionMsgCode.UPDATE.name(), commonResult.getMsgCode());
  100. }
  101. @Test
  102. @Rollback(true)
  103. public void testDelete() throws Exception{
  104. ${class} ${classVar} = ${classVar}Repository.getLast();
  105. if(${classVar}!=null){
  106. String uri = "/storeadmin/${sys}/${module}/${classVar}/delete.do";
  107. MockHttpServletRequestBuilder builder = get(uri)
  108. .param("id",${classVar}.getId());
  109. CommonResult commonResult = executeCommonResult(builder);
  110. Assert.assertTrue(commonResult.isSuccess());
  111. Assert.assertEquals(ActionMsgCode.DELETE.name(), commonResult.getMsgCode());
  112. }
  113. }
  114. }