您的位置:首页 > 编程语言 > Java开发

spring mvc 使用junit 测试 controller

2017-05-05 20:26 288 查看
直接上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 = []
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  junit spring mvc