Spring MVC(三)基于上一篇使用JUnit编写测试用例

来源:互联网 发布:测评软件 编辑:程序博客网 时间:2024/05/22 01:54

    基于Spring MVC(二)工程中的HelloController.java控制器进行JUnit测试

在HelloController.java上右击--->new--->JUnit---->JUnit Test Case,之后项目结构如下:


首先看一下HelloController.java的代码:

package com.liu.controller;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;@Controller@RequestMapping("/test")public class HelloController  {@RequestMapping("/index.do")public String users(HttpServletRequest request,HttpServletResponse response) throws Exception{String username = request.getParameter("username");String password = request.getParameter("password");System.out.println("----:"+username);System.out.println("----:"+password);request.setAttribute("username", username);request.setAttribute("password", password);return "/index";}}
输入主要是username和password,然后返回字符串"/index",意思就是用index.jsp进行视图渲染。

由于我们对这里输入的username和password不做任何要求,只要我们输入它们,便返回"/index"

因此,JUnit测试代码HelloControllerTest.java如下:

package com.liu.controller;import static org.junit.Assert.*;import org.junit.Before;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.mock.web.MockHttpServletRequest;import org.springframework.mock.web.MockHttpServletResponse;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;/** *@RunWith:使用pringJUnit4ClassRunner.class进行测试 *@ContextConfiguration:加载配置文件 */@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration({"classpath*:/springmvc-servlet.xml","classpath*:/web.xml"})public class HelloControllerTest {//模拟request,responseprivate MockHttpServletRequest request;private MockHttpServletResponse response;private HelloController helloController;/* * 测试开始之前进行初始化 */@Beforepublic void setUp() throws Exception {request = new MockHttpServletRequest();request.setCharacterEncoding("UTF-8");response = new MockHttpServletResponse();}@Testpublic void testUser() {request.setParameter("username", "admin");request.setParameter("password", "123456");try {//判断控制器执行后是否返回字符串"/index"用于渲染assertEquals("/index", helloController.users(request, response));} catch (Exception e) {e.printStackTrace();}}}


然后右击HelloControllerTest.java--->Run as--->JUnit Test,运行通过:



0 0
原创粉丝点击