快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
有可能的(参见 参考资料 获得结合使用 TestNG 和 Groovy 的示例)。Groovy 的字节码与 Java 编程兼容,因此您可以通过 Groovy 使用任何 Java 测试框 架。

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

时间:2011-07-29 IBM Scott Davis

将清单 3 中的代码添加到 grails-app/domain/HotelStay.groovy 和 test/integration/HotelStayTests.groovy:

清单 3. 一个简单的测试

class HotelStay{   String hotel } class HotelStayTests extends GroovyTestCase {   void testSomething(){    HotelStay hs = new HotelStay(hotel:"Sheraton")    assertEquals "Sheraton", hs.hotel   } }

清单 3 正是我前面提到那种低级 Grails 基础设施测试。您应该相信 Grails 能够正确执行这个操作 ,因此这是一个典型的错误测试类型。但它允许您编写最简单的测试并观察其运行,实现了本文的目的。

要运行所有测试,请输入 grails test-app。要仅运行这个测试,请输入 grails test-app HotelStay(由于约定优于配置,Tests 后缀可以省略)。不管输入哪个命令,您应该会在命令提示中看 到如清单 4 所示的输出(注意:为了突出重要的特性,我删减了许多代码)。

清单 4. 运行测试时的输出

$ grails test-app Environment set to test No tests found in test/unit to execute ... ------------------------------------------------------- Running 1 Integration Test... Running test HotelStayTests...            testSomething...SUCCESS Integration Tests Completed in 253ms ------------------------------------------------------- Tests passed. View reports in /src/trip-planner2/test/reports

这里发生了 4 件重要的事情:

可以看到,environment 被设置为 test。这意味着 conf/DataSource.groovy 文件中的 test 块的数 据库设置已生效。

test/unit 中的脚本已运行。您尚未编写任何单元测试,所以不能找到任何单元测试,这并不奇怪。

test/integration 中的脚本已经运行。您可以看到 HotelStayTests.groovy 脚本的输出 — 它的旁 边有个很大的 SUCCESS。

这个脚本向您展示一组报告。

如果您在 Web 浏览器中打开 /src/trip-planner2/test/reports/html/index.html,应该会看到一个 关于所有已运行的测试的报告。如图 1 所示。

图 1. JUnit 顶级汇总报告

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

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

时间:2011-07-29 IBM Scott Davis

如果您单击 HotelStayTests 链接,应该会看到 doSomething() 测试,如图 2 所示:

图 2. JUnit 类级报告

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

如果测试意外失败,命令提示输出和 HTML 报告(如图 3 所示)将通知您:

图 3. 失败的 JUnit 测试

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

编写第一个有价值的测试

以上是第一个正常运行的简单测试,接下来将展示一个更加实用的测试示例。假设您的 HotelStay 类 有两个字段:Date checkIn 和 Date checkOut。根据一个用户情景,toString 方法的输出应该像这样: Hilton (Wednesday to Sunday)。通过 java.text.SimpleDateFormat 类,获取正确格式的日期非常简单 。您应该为此编写一个测试,但不需验证 SimpleDateFormat 是否正确工作。您的测试做两件事情:它验 证 toString 方法是否按照预期运行;它证明您是否满足用户情景。

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

时间:2011-07-29 IBM Scott Davis

单元测试是可执行的文档

用户需求常常是桌面上的某些文档。作为开发人员,您应该将这些需 求转换成有效的软件。

需求文档的问题是:在进行实际软件开发时它通常已经过时。它不是可以 随着软件的发展而变化的 “活动文档”。工件 一词完美地描述

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