zoukankan      html  css  js  c++  java
  • 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&amp;#x27;s Speed

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

    华为OJ:分段排序

    Apache+Tomcat负载均衡问题集锦

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

    The New Data and Time API in Java 8

    JDBC连接池C3P0

    Dijkstra和Floyd_warshall

    进入频道

    点击查看更多相关内容

  • 相关阅读:
    牛哄哄的 汉诺塔递归
    c 终端控制
    ubuntu apt源
    vim 用法
    纯js 判断表单为空 阻止 input 提交
    Yii2 文本框前加图标 input 添加属性的方法
    layer 弹窗 弹出层 iframe子页面获取父级页面id
    获取Yii2 常用 路径 目录 url
    Yii Activeform 表单
    Yii use namespace 命名空间
  • 原文地址:https://www.cnblogs.com/zhao123/p/3893561.html
Copyright © 2011-2022 走看看