基本spring测试框架的测试demo

以下是user 控制器的测试实例

import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.List;
import javassist.expr.NewArray;
import org.hamcrest.Matchers;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
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.result.MockMvcResultHandlers;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;
import org.springframework.web.context.WebApplicationContext;
import com.controller.user.UserController;
import com.entity.user.User;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*;
import static org.springframework.test.web.servlet.setup.MockMvcBuilders.*;
import static org.hamcrest.Matchers.*;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:/spring/spring.applicationContext.mysql.xml"})

public class TestUserController {

	private MockMvc mockMvc;
    

	@Before
	public void setUp() {
		this.mockMvc = standaloneSetup(new UserController())
				       .defaultRequest(get("/")
				       .accept(MediaType.APPLICATION_JSON))
				       .alwaysExpect(status().isOk())
				       .alwaysExpect(content().contentType("application/json;charset=UTF-8"))
				       .build();
	}

	@Test
	public void testDisplayUser() throws Exception {
		this.mockMvc.perform(get("/users"))
		.andExpect(view().name("userListView"))
		.andExpect(model().attribute("users",hasSize(2)))
		.andExpect(model().attribute("users",hasItem(hasProperty("no", is("FF0478")))))
		.andExpect(model().attribute("users",hasItem(hasProperty("no", is("FF0479")))))
		.andDo(print());
	}
	@Test
	public void getUser() throws Exception{
		this.mockMvc.perform(get("/users/5476"))
		.andExpect(model().attribute("user",hasProperty("no", is("FF0830"))))
		.andExpect(model().attribute("user", hasProperty("id", is(5476))));
	}
	@Test
	public void saveUser() throws Exception{
		this.mockMvc.perform(get("/user/save")
				.param("name", "李阳")
				.param("no", "FF0833")
				.param("password", "123")
				.param("departmentId", "101"))
		.andExpect(view().name("userList"));
	}

	@Test
	public void updateUser() throws Exception {
		this.mockMvc.perform(get("/users/update")
				.param("id", "12")
				.param("name", "李阳")
				.param("no", "FF0834"))
				.andExpect(view().name("userList"));
	}
}
时间: 2024-10-10 14:31:51

基本spring测试框架的测试demo的相关文章

使用强大的 Mockito 测试框架来测试你的代码

原文链接 : Unit tests with Mockito - Tutorial 译文出自 : 掘金翻译计划 译者 : edvardhua 校对者: hackerkevin, futureshine 这篇教程介绍了如何使用 Mockito 框架来给软件写测试用例 1. 预备知识 如果需要往下学习,你需要先理解 Junit 框架中的单元测试. 如果你不熟悉 JUnit,请查看下面的教程: www.vogella.com/tutorials/J- 2. 使用mock对象来进行测试 2.1. 单元测

白盒测试的学习之路----(四)搭建测试框架TestNG测试

TestNG是一个开源自动化测试框架; TestNG是类似于JUnit,但它不是一个JUnit扩展.它的灵感来源于JUnit.它的目的是优于JUnit的,尤其是当测试集成的类. TestNG消除了大部分的旧框架的限制,使开发人员能够编写更加灵活和强大的测试. 因为它在很大程度上借鉴了Java注解(JDK5.0引入的)来定义的测试,它也可以告诉你如何使用这个新功能在真实的Java语言生产环境中.一般开发使用的是JUnit做单元测试,而测试一般都是勇士TestNG. 首先,就是下载相关jar包(te

Spring基于注解TestContext 测试框架使用详解

概述 Spring 2.5 相比于 Spring 2.0 所新增的最重要的功能可以归结为以下 3 点: 1.基于注解的 IoC 功能:  2.基于注解驱动的 Spring MVC 功能:  3.基于注解的 TestContext 测试框架. Spring 推荐开发者使用新的基于注解的 TestContext 测试框架,本文我们将对此进行详细的讲述. 低版本的 Spring 所提供的 Spring 测试框架构在 JUnit 3.8 基础上扩展而来,它提供了若干个测试基类.而 Spring 2.5

SpringMvc测试框架详解----服务端测试

随着RESTful Web Service的流行,测试对外的Service是否满足期望也变的必要的.从Spring 3.2开始Spring了Spring Web测试框架,如果版本低于3.2,请使用spring-test-mvc项目(合并到spring3.2中了). Spring MVC测试框架提供了对服务器端和客户端(基于RestTemplate的客户端)提供了支持. 对于服务器端:在Spring 3.2之前,我们测试时一般都是直接new控制器,注入依赖,然后判断返回值.但是我们无法连同Spri

学习心得——测试框架浅析

笔者按:       在这一学期的软件测试课程学习中,我逐渐接触到了软件测试的相关知识,实现了从较为关注软件编写与实现等前端内容到逐渐理解软件测试等项目后期环节的跨 越与 转变.而在软件测试领域,我们经常会听到测试框架这个名词,那什么是测试框架?它在软件测试中起到什么样的作用?我将就自己浅薄的学习心得,在这里为大 家做一个简单的分析与交流. 正文:          我们先来看一下百度百科给出的关于“框架”一词的定义:“框架(framework)是一个基本概念上的结构,用于去解决或者处理复杂的问

测试框架

什么是测试框架 测试框架是一组自动化测试的规范.测试脚本的基础代码,以及测试思想.惯例的集合.可用于减少冗余代码.提高代码生产率.提高代码重用性和可维护性.测试框架出现的最终目的是花少量的资源来完成尽可能多的测试任务,所以测试框架的建立以及框架的重用性方面是最值得测试人员深入探究的地方. 测试框架的好处 提高开发速度 提升测试代码的执行效率 提高软件代码质量,同时引入重构概念,让代码更干净和富有弹性 提升系统的可信赖度,作为回归测试的一种实现方法支持修复后“再测试”,确保代码的正确性. 测试框架

软件测试第三周——测试框架

首先,先来了解一下测试框架 测试框架的属性: 1. 测试框架是测试开发过程中提取特定领域测试方法共性部分形成的体系结构 2. 测试框架的作用:在其基础上重用测试设计原则和测试经验,调整部分内容便可满足需求,可提高测试用例设计开发质量,降低成本,缩短时间 3.测试框架类型根据测试领域不同而改变 4.测试框架是一个半成品,需要测试工程师基于它转化成自己的测试用例: 5.测试框架是提供给测试人员开发相应领域测试用例的测试分析设计工具 6.测试框架不是测试用例集,而是通用的,具有一般性的系统主体部分.测

Android开源测试框架学习

近期因工作需要,分析了一些Android的测试框架,在这也分享下整理完的资料. Android测试大致分三大块: 代码层测试 用户操作模拟,功能测试 安装部署及稳定性测试 代码层测试 对于一般java代码,采用传统的Junit测试,开发人员通常会编写重要接口和函数的白盒测试代码,不做过多讨论. 但因Android的特殊运行机制(Dalvik虚拟机),其中存在Application.Activity.Service等特殊组件,而这些组件都涉及到生命周期管理的问题. 为了对这些组件进行测试,Goog

Android中测试框架使用简介

测试 好的程序是测出来的. 测试的目的:尽可能多的测试出程序中的bug. 测试分为 黑盒测试:测试业务逻辑 白盒测试:测试逻辑方法.一般是写一段脚本代码,通过脚本代码去调用业务逻辑方法. 按照测试粒度分为: 方法测试:function test   测试某一个方法 单元测试:unit test      测试某一个类或者某一个单元的多个方法 集成测试:integration testv服务器和客户端联合调试,测试的是多个单元. 系统测试 system test      测试的是整个系统的功能,