快速业务通道

精通Grails: 创建自定义插件 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
2 IBM Scott Davis

注意,将 transactional 标志设置为 false 后,我们声明了 shortenUrlService 变量。然后在 setUp() 方法中初始化服务。为每个服务调用 setUp() 和 tearDown() 方法。

如果这是一个集成测试,则不会出现错误。但由于这是一个单元测试,testIsGdWithBadUrl() 方法失 败并显示错误消息:No such property: log for class: ShortenUrlService。在 Web 浏览器中打开 test/reports/html/index.html,您将看到如图 2 所示的错误消息。

图 2. 注入的 log 对象导致单元测试失败

如上所示,log 对象并没有注入服务中以进行单元测试。(记住:单元测试意味着完全隔离运行)。 好在解决这个问题只需在 setUp() 方法中添加一行 — mockLogging(ShortenUrlService) — 如清单 11 所示。

清单 11. 模拟注入的 log 对象

protected void setUp() {    super.setUp()    mockLogging(ShortenUrlService)    shortenUrlService = new ShortenUrlService() }

mockLogging() 方法将一个模拟 log 对象注入到服务中。这个模拟记录器将它的输出发送到 System.out 而不是任何已定义的 log4j 输出器。要查看输出(如图 3 所示),再次输入 grails test -app,单击 ShortenUrlServiceTests 的 HTML 报告页面底部的 System.out 链接。

图 3. 模拟记录器的输出

您还可以为这个插件集成大量其他 Grails 工件 — 一个自定义 TagLib 以缩短 GSP 中的 URL,一个 自定义编解码器 — 但现在您已经充分了解一个插件可以提供的内容,在这里就不一一演示了。在下一个 小节中,我们将把这个插件原样打包并集成到另一个 Grails 项目中。

精通Grails: 创建自定义插件(7)

时间:2011-08-02 IBM Scott Davis

打包并部署插件

要准备一个完整的 Grails 应用程序以便部署,通常需要输入 grails war。但对于插件,则应输入 grails package-plugin。这样,您的项目中将生成一个 grails-shortenurl-0.1.zip 文件。

回想一下,“精通 Grails:了解插件” 介绍过,所有 Grails 插件都作为 ZIP 文件分发。查看一下 home 目录中的 .grails/1.1.1/plugins 目录,您将看到类似的插件名称,比如 grails-hibernate- 1.1.1.zip 和 grails-searchable-0.5.5.zip。

假如 ShortenUrl 是一个公共插件,您可以输入 grails release-plugin 将您的更改提交到 Grails Plugins 门户网站。然后,任何人都可以输入 grails install-plugin shortenurl 将它集成到他们的项 目中。您也可以在本地轻松安装私有插件,只需提供 ZIP 文件在您的本地文件系统上的完整路径。

要测试这一点,在 shortenurl 目录外创建一个新的空目录。输入 grails create-app foo 创建一个 简单的应用程序。切换到 foo 目录并输入 grails install-plugin /local/path/to/grails- shortenurl-0.1.zip,当然,要用实际插件路径替换其中的路径。您将看到类似于清单 12 的输出:

清单 12. 安装一个本地插件

$ grails install-plugin /code/grails-shortenurl- 0.1.zip Welcome to Grails 1.1.1 - http://grails.org/ Licensed under Apache Standard License 2.0 Grails home is set to: /opt/grails Base Directory: /code/foo Running script /opt/grails/scripts/InstallPlugin.groovy  Environment set to development     [copy] Copying 1 file to /Users/sdavis/.grails/1.1.1/plugins     Installing plug-in shortenurl-0.1     [mkdir] Created dir:     /Users/sdavis/.grails/1.1.1/projects/foo/plugins/shortenurl-0.1     [unzip] Expanding:     /Users/sdavis/.grail

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