提示:原网站已由百度转码,以便在移动设备上查看。

第七城市

(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&amp;#x27;s Speed

登陆状态持久化 - 小小程序控

华为OJ:分段排序

Apache+Tomcat负载均衡问题集锦

【小白的java成长系列】——多线程初识(多人买

The New Data and Time API in Java 8

JDBC连接池C3P0

Dijkstra和Floyd_warshall

进入频道

点击查看更多相关内容

spring中controller的更多相关文章

  1. 【spring Boot】Spring中@Controller和@RestController之间的区别

    spring Boot入手的第一天,看到例子中的@RestController ............. 相同点:都是用来表示Spring某个类的是否可以接收HTTP请求 不同点:@Controll ...

  2. Spring中@Controller和@RestController之间的区别

    1. Controller, RestController的共同点 都是用来表示Spring某个类的是否可以接收HTTP请求 2.  Controller, RestController的不同点 @C ...

  3. Spring中Controller和RequestMapping的详解

    先看一个简单的实例: @Controller @RequestMapping("/hello") public class anyTypeController{ @RequestM ...

  4. Spring 中Controller 获取请求参数的方法笔记

    1.直接把表单的参数写在Controller相应的方法的形参中,适用于get方式提交,不适用于post方式提交.若"Content-Type"="application/ ...

  5. Spring中@Component注解,@Controller注解详解

    在使用Spring的过程中,为了避免大量使用Bean注入的Xml配置文件,我们会采用Spring提供的自动扫描注入的方式,只需要添加几行自动注入的的配置,便可以完成 Service层,Controll ...

  6. Spring MVC Controller中解析GET方式的中文参数会乱码的问题(tomcat如何解码)

    Spring MVC Controller中解析GET方式的中文参数会乱码的问题 问题描述 在工作上使用突然出现从get获取中文参数乱码(新装机器,tomcat重新下载和配置),查了半天终于找到解决办 ...

  7. Spring MVC Controller中GET方式传过来的中文参数会乱码的问题

    Spring MVC controller 这样写法通常意味着访问该请求,GET和POST请求都行,可是经常会遇到,如果碰到参数是中文的,post请求可以,get请求过来就是乱码.如果强行对参数进行了 ...

  8. spring mvc controller中获取request head内容

    spring mvc controller中获取request head内容: @RequestMapping("/{mlid}/{ptn}/{name}") public Str ...

  9. Spring中@Component注解,@Controller注解详解

    在使用Spring的过程中,为了避免大量使用Bean注入的Xml配置文件,我们会采用Spring提供的自动扫描注入的方式,只需要添加几行自动注入的的配置,便可以完成 Service层,Controll ...

随机推荐

  1. Java Hashtable类

    哈希表(Hashtable)是原来的java.util中的一部分,是一个字典的具体实现. 然而,Java2重新设计的哈希表,以便它也实现了​​Map接口.因此,哈希表现已集成到集合框架.它类似于Has ...

  2. seajs第二节,seajs各模块依赖关系

    index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> &l ...

  3. 一道简单的动态规划题目——House Robber

    一.题目 House Robber(一道Leetcode上的关于动态规划的简单题目)具体描述如下: There is a professional robber planning to rob hou ...

  4. Java时间戳与日期格式字符串的互转

    上代码: import java.text.SimpleDateFormat; import java.util.Date; public class DateUtil { /** * 时间戳转换成日 ...

  5. Centos安装配置Postfix邮件服务器

    发布时间:July 6, 2012 // 分类:Mail // No Comments 在安装邮件服务器之前先了解几个名词,以后会用到: 1 2 3 4 5 6 MUA:用户代理端,即用户使用的写信. ...

  6. python连接字符串的方式

    发现Python连接字符串又是用的不顺手,影响速度 1.数字对字符进行拼接 s=""  #定义这个字符串,方便做连接 print type(s) for i in range(10 ...

  7. C++之vector用法

    1.插入配对 std::vector<pair<int,int> > w; w.push_back(make_pair<int,int>(f,s) ); cout ...

  8. static和public

    static:静态.   可以设置:静态类.静态变量.静态方法.   没有使用static修饰的成员为实例成员. 静态成员的使用:通过类名.   1.不加static修饰的成员是对象成员,归每个对象所 ...

  9. JavaScript之放大镜效果

    在网上也浏览过许多关于JavaScript放大镜效果的文章,有的代码解释得些隐晦难懂,看的我头有点晕晕的╮(╯﹏╰)╭,我的心情是这样的: 吐槽完了,我们动动小鼠标,当鼠标经过下面这张美女图片时就实现 ...

  10. 两种获取connectionString的方式

    两种获取connectionString的方式 1. public static string connectionString = ConfigurationManager.ConnectionSt ...