spring中controller
提示:原网站已由百度转码,以便在移动设备上查看。
第七城市
(Portal 开发读书笔记)Spring Portlet MVC 测试Controller
2012-04-28 16:32:44 - - 点击数: 175
测试Spring Portlet MVC 中的Controller有两种方法,一种是用mock对象,一种是用TestContext框架
测试1:用mock 对象测试Controller。我们把所有Controller用到或者依赖的对象全部mock掉。
public class AddBookControllerTest {
//这是被测试的Controller类的实例
private AddBookController addBookController;
//因为Controller依赖某些Service,所以我们创造这些Service的mock对象
private BookService bookService= new MockBookService();
@Before
public void setUp() {
addBookController = new AddBookController();
addBookController.setBookService(bookService);
} @Test
public void testShowAddBookForm() {
//这个测试用例测试一个render方法
//我们首先创造一个RenderResponse的mock对象
//调用mock对象上的被测试的方法并且比较返回值
RenderResponse response = new MockRenderResponse();
assertEquals("addBookForm",
addBookController.showAddBookForm(response));
} @Test
public void testAddBook() {
//这个测试用例测试一个action方法
Book book = new Book("test book", "test author", 1234567890L);
MockActionResponse response = new MockActionResponse();
//我们调用被测试的方法,让它加入一本书
addBookController.addBook(book,
new BindException(book, "book"), response,
new SimpleSessionStatus());
//比较结果
assertNotNull(bookService.getBook(1234567890L));
assertEquals("books", response.getRenderParameter("myaction"));
} }
测试2:我们用TestContext框架来进行测试。
//@RunWith用来指定运行这些测试的Runner
@RunWith(SpringJUnit4ClassRunner.class)
//@ContextConfiguration用来指定运行这些测试所用到的Spring应用上下文
@ContextConfiguration(
locations="classpath:bookCatalogTest-portlet.xml"
)
@TestExecutionListeners(value =
{ DependencyInjectionTestExecutionListener.class }
)
public class AddBookControllerTestContext extends
AbstractJUnit4SpringContextTests {
@Autowired
@Qualifier("addBookController")
private AddBookController addBookController;
@Autowired
@Qualifier("myBookService")
private BookService bookService;
@Autowired
private Validator validator;
@Test
public void testShowAddBookForm() {
RenderResponse response = new MockRenderResponse();
assertEquals("addBookForm",
addBookController.showAddBookForm(response));
} ... @Test
public void testBook() {
Set<ConstraintViolation<Book>> violations =
validator.validate(new Book());
int[] actual = {violations.size()};
int[] expected = {4};
assertArrayEquals(expected, actual);
} }
本文出自 “平行线的凝聚” 博客,请务必保留此出处http://supercharles888.blog.51cto.com/609344/845940
测试
相关文章
POJ 3261 Milk Patterns 求可重叠的 k 次最长重复子串
Android]Android开发入门之HelloWorld
在使用C语言指针时的的一个不容易发现的陷阱
Android NDK开发
Android是在onCreate还是onStart中初始化数据的选择
高效开发Android App的10个建议
objective-c 中随机数的用法
从零开始编写自己的C#框架(4)——文档编写说明
asp.net服务器控件button先执行js再执行后台的方法
C++ Primer 3rd 读书笔记1/2
评论最新最早最热
还没有评论,沙发等你来抢
社交帐号登录
发布
第七城市正在使用多说
表格制作教程linux教程ps图片oracle数据库ps教程excel函数ps软件ps磨皮wordexcel表格制作
本站导航
平面设计PhotoshopIllustrator
FireworksCoreldrawFlash
3DS MAXAutoCADMaya
美图秀秀网页设计Dreamweaver
HTML/CSSJavaScriptFrontPage
Ajax设计赏析平面设计作品
网页设计欣赏三维动画赏析标志设计欣赏
插画设计作品室内设计欣赏VI设计欣赏
UI设计欣赏摄影艺术设计理念
网络编程ASP教程PHP教程
JavaASP.NETSilverLight
DelphiC语言C++
PythonPerlRuby
WPFAndroidWindows Phone
IOS操作系统Windows
LinuxMac OS X办公软件
Word教程Excel教程PowerPoint教程
WPS Office数据库MySQL
SQL ServerOracle非主流
非主流美女非主流男生非主流图片
非主流服饰非主流饰品非主流闪图
QQ专区QQ空间QQ分组
QQ素材QQ日志QQ网名
QQ签名游戏频道单机游戏
网络游戏iOS游戏Android游戏
最新教程
最新推荐
周点击榜
Flex入门(三)——微架构之Cairngorm
RAM调优之日志分析
hdu1160,FatMouse&#x27;s Speed
登陆状态持久化 - 小小程序控
华为OJ:分段排序
Apache+Tomcat负载均衡问题集锦
【小白的java成长系列】——多线程初识(多人买
The New Data and Time API in Java 8
JDBC连接池C3P0
Dijkstra和Floyd_warshall
进入频道
点击查看更多相关内容
spring中controller的更多相关文章
- 【spring Boot】Spring中@Controller和@RestController之间的区别
spring Boot入手的第一天,看到例子中的@RestController ............. 相同点:都是用来表示Spring某个类的是否可以接收HTTP请求 不同点:@Controll ...
- Spring中@Controller和@RestController之间的区别
1. Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2. Controller, RestController的不同点 @C ...
- Spring中Controller和RequestMapping的详解
先看一个简单的实例: @Controller @RequestMapping("/hello") public class anyTypeController{ @RequestM ...
- Spring 中Controller 获取请求参数的方法笔记
1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交.若"Content-Type"="application/ ...
- Spring中@Component注解,@Controller注解详解
在使用Spring的过程中,为了避免大量使用Bean注入的Xml配置文件,我们会采用Spring提供的自动扫描注入的方式,只需要添加几行自动注入的的配置,便可以完成 Service层,Controll ...
- Spring MVC Controller中解析GET方式的中文参数会乱码的问题(tomcat如何解码)
Spring MVC Controller中解析GET方式的中文参数会乱码的问题 问题描述 在工作上使用突然出现从get获取中文参数乱码(新装机器,tomcat重新下载和配置),查了半天终于找到解决办 ...
- Spring MVC Controller中GET方式传过来的中文参数会乱码的问题
Spring MVC controller 这样写法通常意味着访问该请求,GET和POST请求都行,可是经常会遇到,如果碰到参数是中文的,post请求可以,get请求过来就是乱码.如果强行对参数进行了 ...
- spring mvc controller中获取request head内容
spring mvc controller中获取request head内容: @RequestMapping("/{mlid}/{ptn}/{name}") public Str ...
- Spring中@Component注解,@Controller注解详解
在使用Spring的过程中,为了避免大量使用Bean注入的Xml配置文件,我们会采用Spring提供的自动扫描注入的方式,只需要添加几行自动注入的的配置,便可以完成 Service层,Controll ...
随机推荐
- IT项目技术建议书核心内容
第一部分:概述部分 该部分的重点是理解标书,理解项目建设的背景,建设该项目的初衷究竟是什么?需要解决的核心关键问题是什么?基于对项目的理解然后明确项目建设的目标,项目建设的原则,项目本事的定位,项目建 ...
- swift3.0基础语法
swift 3.0 基础语法 目录 01-变量和常量 02-运算符 03-可选项 04-条件语句 05-循环 06-字符串 07-元组 08-数组 09-字典 10-对象和类 11-枚举 12-属性 ...
- Android使用MVP时应该注意的问题
生命周期:因为Presenter是View创建的,我们需要确保完全地理解View的生命周期,特别是因为它将最有可能去处理状态更新和异步数据.举个例子,每一个Presenter应该在View destr ...
- 写一个函数,将一个int型的数组做为参数传入,使用指针返回两个结果:最大值和最小值
今日下午研究了一下c语言中的指针问题,c语言的核心是指针,指针的核心是地址,地址的核心是内存. #include <stdio.h> void hanshu(int *arry,int s ...
- JAXL发送房间消息
使用composer形式安装的JAXL <?php require_once "vendor/autoload.php"; $client = new JAXL(array( ...
- 【转】学习JAVA的步骤
好东西大家分享: JAVA学习的一些重点 . Java语言基础 谈到Java语言基础学习的书籍,大家肯定会推荐Bruce Eckel的<Thinking in Java>.它是一本写的 ...
- HTML5_注册表单的自动聚焦与占位文本
首先看下面要使用HTML自动聚焦和占位文本的示例代码 1: <!DOCTYPE html> 2: <html> 3: <head> 4: <title> ...
- iOS 通过tag查找控件
//比如创建一个UIImageView到view上 UIImageView *imageView = [[UIImageView allc] init]; imageView.tag = 10001; ...
- Shell脚本报错unary operator expected
在匹配字符串时用了类似这样的语句 if[ $timeofday = "yes"]; then echo "Good morning" exit 0 报错的原因是 ...
- jenkins(一)集成环境搭建示例
一.环境准备 1.安装java环境 测试自己机器是否已安装,在dos上运行java-version ,出现如下类似结果表示安装完成 2.安装Git/svn git具体配置见我的博客 “GitHub使用 ...