快速业务通道

精通Grails - 使用Grails进行单元测试(单元测试提速) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
将值添加到 flash 和 session 一样。清单 22 给出了默认的 show 操作:

清单 22. 默认的 show 操作

def show = {    def userInstance = User.get( params.id )    if(!userInstance) {      flash.message = "User not found with id  ${params.id}"      redirect(action:list)    }    else { return [ userInstance : userInstance ] } }

还记得 GrailsUnitTestCase 的 mockDomain() 方法吗?您可以在这里使用 它来模拟 User 表,如清单 23 所示:

清单 23. 测试默认的 show 操作

void testShow() {   def jdoe = new User(name:"John Doe",             login:"jdoe",             password:"password",             role:"user")   def suziq = new User(name:"Suzi Q",             login:"suziq",             password:"wordpass",             role:"admin")   mockDomain(User, [jdoe, suziq])   controller.params.id = 2    // this is the HashMap returned by the show action   def returnMap = controller.show()   assertEquals "Suzi Q", returnMap.userInstance.name }

精通Grails - 使用Grails进行单元测试(单元测试提速)(9)

时间:2010-12-03 IBM Scott Davis

使用 ControllerUnitTestCase 测试 RESTful Web 服务

有时,要测试控制器,您需要访问原始的请求和响应。对于 ControllerUnitTestCase,您可以分别通过 controller.request 和 controller.response 对象获取以下信息: GrailsMockHttpServletRequest 和 GrailsMockHttpServletResponse。

您可以查阅 “精通 Grails:RESTful Grails” 获取设置 RESTful 服务的 指南。再结合 “实战 Groovy:构建和解析 XML” 分析结果,您就具备了测试 RESTful Web 服务所需的一切了。

将一个简单的 listXml 操作添加到 UserController,如清单 14 所示。( 不要忘记导入 grails.converters 包)。

清单 24. 控制器中的简单 XML 输出

import  grails.converters.* class UserController {   def listXml = {    render User.list() as XML   }   // snip... }

然后将一个 testListXml() 方法添加到 UserControllerTests.groovy,如 清单 25 所示:

清单 25. 测试 XML 输出

void testListXml() {   def suziq = new User(name:"Suzi Q",             login:"suziq",             password:"wordpass",             role:"admin")   mockDomain(User, [suziq])   controller.listXml()   def xml = controller.response.contentAsString   def list = new XmlParser().parseText(xml)   assertEquals "suziq", list.user.login.text()   //output   /*   <?xml version="1.0" encoding="UTF-8"?>   <list>    <user>     <class>User</class>     <id>1</id>     <login>suziq</login>     <name>Suzi Q</name>     <password>wordpass</password>     <role>admin</role>     <version />    </user>   </list>   */ }

此测试中发生的第一件事是

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号