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

本文介绍如何基于Spring MVC的HelloController.java编写JUnit测试用例。通过在控制器中对username和password不做验证,直接返回"/index"的逻辑,详细展示了JUnit Test Case的创建过程和测试代码编写。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    基于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,response
	private MockHttpServletRequest request;
	private MockHttpServletResponse response;
	

	private HelloController helloController;
	
	/*
	 * 测试开始之前进行初始化
	 */
	@Before
	public void setUp() throws Exception {
		request = new MockHttpServletRequest();
		request.setCharacterEncoding("UTF-8");
		response = new MockHttpServletResponse();
	}

	@Test
	public 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,运行通过:



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值