快速业务通道

精通Grails: 测试 Grails 应用程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
的 TagLib

import java.text.SimpleDateFormat class DateTagLib {   def customDateFormat = {attrs, body ->    def b = attrs.body ?: body()    def d = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(b)    //if no format attribute is supplied, use this    def pattern = attrs["format"] ?: "MM/dd/yyyy"    out << new SimpleDateFormat(pattern).format(d)   } }

TagLib 接受属性形式的简单的 String 值和标记体,并将一个 String 发送到输出流。由于您将使用 这个定制标记封装未格式化的 Date 字段,所以需要两个 SimpleDateFormat 对象。输入对象读入一个与 Date.toString() 调用的默认格式相匹配的 String。当将其解析为适当的 Date 对象之后,您就可以创 建第二个 SimpleDateFormat 对象,以便以另一种格式的 String 将它传回。

使用新的 TagLib 在 list.gsp 和 show.gsp 中封装 checkIn 和 checkOut 字段。如清单 15 所示:

清单 15. 使用定制的 TagLib

<g:customDateFormat>${fieldValue(bean:hotelStay, field:''checkIn'')} </g:customDateFormat>

输入 grails run-app,然后访问 http://localhost:9090/trip/hotelStay/list,检查实际使用中的 定制 TagLib,如图 13 所示:

图 13. 使用定制 TagLib 的数据输出

精通Grails: 测试 Grails 应用程序 - 编程入门网

精通Grails: 测试 Grails 应用程序(12)

时间:2011-07-29 IBM Scott Davis

现在,编写清单 16 中的几个测试,用来检查 TagLib 是否按照预期工作:

清单 16. 测试定制的 TagLib

import java.text.SimpleDateFormat class DateTagLibTests extends GroovyTestCase {    void testNoFormat() {     def output =      new DateTagLib().customDateFormat(format:null, body:"2008-10-01 00:00:00.0")     println "\ncustomDateFormat using the default format:"     println output     assertEquals "was the default format used?", "10/01/2008", output    }    void testCustomFormat() {     def output =      new DateTagLib().customDateFormat(format:"EEEE", body:"2008-10-01 00:00:00.0")     assertEquals "was the custom format used?", "Wednesday", output    } }

结束语

到目前为止,您已经编写了几个测试,并看到了用它们测试 Grails 组件是多么简单!但是您可以继 续开拓,不断取得进步,这会让您对工作更加自信。将自己的测试和用户场景匹配起来有这样的好处:您 将拥有一组永远保持最新的可执行文档。

在下一篇文章中,我将重点讨论 JavaScript Object Notation (JSON)。Grails 具有出色的开箱即用 的 JSON 支持。您将了解如何通过控制器生成 JSON,以及如何在 GSP 中使用它。在此期间,享受精通 Grails 带来的乐趣吧。

关于作者

Scott Davis 是国际知名作家、演讲家和软件开发人员。他出版的书籍包括 Groovy Recipes: Greasing the Wheels of Java、GIS for Web Developers: Adding Where to Your Application、The Google Maps API 和 JBoss At Work。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号