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);
}
}
}
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+Mockito结合测试Spring MVC Controller
- Spring MVC如何测试Controller(使用springmvc mock测试)
- 使用Mock MVC来进行Controller 层的junit的测试
- 详解Spring MVC如何测试Controller(使用springmvc mock测试)
- Junit测试Controller(MockMVC使用),传输@RequestBody数据解决办法
- 使用Mock MVC来进行Controller 层的junit的测试
- Spring MVC(三)基于上一篇使用JUnit编写测试用例
- 使用spring boot +Junit 测试 spring mvc 配置中心项目
- 如何使用Junit编写和组织测试程序
- 使用JUnit 进行测试
- Eclipse中使用Junit插件测试(二)
- 使用JUnit测试JPA环境
- JUnit测试框架使用介绍 推荐
- 使用JUnit进行测试
- 使用junit4下myeclipse环境下测试hibernate方法的心得
- 使用Junit测试数据库联接
- 使用Eclipse进行Junit测试
- 使用Junit时,如果测试类继承了另一个类,会导致在Eclipse里无法单独测试一个方法。
- Ant 使用Junit自动测试要注意的问题
- Eclipse中使用Junit插件测试