spring mvc 使用junit 测试 controller

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



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值