spring mvc 使用junit 测试 controller

xiaoxiao2021-02-28  75

直接上java代码:

package com.line.up.controller; import static org.springframework.test.web.servlet.setup.MockMvcBuilders.webAppContextSetup; import java.util.Date; import org.apache.log4j.Logger; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.web.WebAppConfiguration; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.result.MockMvcResultHandlers; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.context.WebApplicationContext; import com.line.up.dto.feedback.FeedbackDto; @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration @ContextConfiguration({ "classpath:spring-servlet.xml" }) public class FeedbackControllerTest { private static Logger LOG = Logger.getLogger(FeedbackControllerTest.class); private MockMvc mockMvc; @Autowired private WebApplicationContext webApplicatoinContext; @Test public void testFeedback(){ LOG.info(new Date()+"xxxxxxxxxxxxxxxxx"); LOG.info("account insert..."); try { FeedbackDto feedbackDto = new FeedbackDto(); feedbackDto.setUserName("zzzz"); feedbackDto.setCreatedTime(new Date()); MultiValueMap<String, String> params = new LinkedMultiValueMap<String, String>(); params.add("userName", "test1"); params.add("userMobile", "zzzzz"); params.add("userEmail", "test1@163.com"); params.add("feedbackContent", "fdasgasfdasfdas固定撒发达"); this.mockMvc = webAppContextSetup(this.webApplicatoinContext).build(); this.mockMvc.perform((MockMvcRequestBuilders.post("/feedback/create.do"). params(params)) ).andExpect(MockMvcResultMatchers.status().isOk()).andDo(MockMvcResultHandlers.print()); } catch (Exception e) { LOG.error(e.getMessage(), e); } } } @RequestMapping(value="/create.do", method = RequestMethod.POST) public String create(HttpServletRequest request){ LOG.debug("反馈。。。"); FeedbackDto feedbackDto = new FeedbackDto(); //这里参数需要用request来接收 feedbackDto.setUserName(request.getParameter("userName")); feedbackDto.setFeedbackSource(0); feedbackDto.setDeleted(0); feedbackDto.setVersiond(0); feedbackDto.setCreatedTime(new Date()); try { LOG.info("feedbackDtoStr:"+JSONObject.toJSONString(feedbackDto)); feedbackBiz.create(feedbackDto); LOG.debug("result:true"); } catch (LineException e) { LOG.error(e.getMessage(),e); } return "register"; }输出调用结果: MockHttpServletRequest: HTTP Method = POST Request URI = /feedback/create.do Parameters = {userName=[test1], userMobile=[zzzzz], userEmail=[test1@163.com], feedbackContent=[fdasgasfdasfdas固定撒发达]} Headers = {} Handler: Type = com.line.up.controller.FeedbackController Method = public java.lang.String com.line.up.controller.FeedbackController.create(javax.servlet.http.HttpServletRequest) Async: Async started = false Async result = null Resolved Exception: Type = null ModelAndView: View name = register View = null Model = null FlashMap: Attributes = null MockHttpServletResponse: Status = 200 Error message = null Headers = {} Content type = null Body = Forwarded URL = /WEB-INF/html/register.html Redirected URL = null Cookies = []

转载请注明原文地址: https://www.6miu.com/read-38911.html

最新回复(0)