直接上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 = []