精通Grails: 测试 Grails 应用程序 - 编程入门网
了这种情况 — 文档描 述软件最初的、历史性的任务是什么,而不是当前实现要做什么。
要想准备一组全面的、优秀的 测试,仅仅保持代码没有 bug 是不够的。这样的测试有一个附带的好处,即您可以得到 “可执行 的文档”:用代码表示活动的、不断变化的项目需求。如果将测试映射到需求,则可以和用户共享 某些内容。您必须保证代码的健全,保证满足了用户的需求。将这个可执行文档与 CruiseControl 等持 续集成服务器(持续反复地运行测试的服务器)相结合,就可以得到一个安全保障机制,它保证新特性不 会对原本良好的软件造成损害。 行为驱动的开发(Behavior-Driven Development,BDD)完全采 用了可执行文档的想法。easyb 是一个用 Groovy 编写的 BDD,它允许您将测试编写成用户和开发人员都 可以阅读的用户需求(参见 参考资料)。如果一些用户思想比较前卫,宁愿放弃 Microsoft® Word (例如),easyb 可以排除所有过时的需求文档。因此,项目需求从一开始就是可执行的。 将清 单 5 中的代码输入到 HotelStay.groovy 和 HotelStayTests.groovy: 清单 5. 使用 assertToString
输入 grails test-app 验证第二个测试是否通过。 testToString 方法使用了新的断言方法之一 —assertToString— 它由 GroovyTestCase 引入。使用 JUnit assertEquals 方法肯定会获得相同的结果,但是 assertToString 的表达能力更强。测试方法的 名称和最终的断言清楚地表明了这个测试的目的(参见 参考资料 获得一个链接,它列出了 GroovyTestCase 支持的所有断言,包括 assertArrayEquals、assertContains 和 assertLength)。 精通Grails: 测试 Grails 应用程序(5)时间:2011-07-29 IBM Scott Davis添加控制器和视图 到目前为止,您一直以编程的方式与 HotelStay 域类交互。添加一个 HotelStayController,如清单 6 所示,它使您能够在 Web 浏览器上使用该类: 清单 6. HotelStayController 源代码
您应该对 create 表单进行仔细的 UI 调试。默认情况下,日期字段包括 day、month、year、hours 和 minutes,如图 4 所示: 图 4. 默认显示日期和时间 在这里,忽略日期字段的时间戳部分是安全的。输入 grails generate-views HotelStay。要创建图 5 所示的经过修改的 UI,请将 precision="day" 添加到 views/hotelStay/create.gsp 和 views/hotelStay/edit.gsp 中的 <g:datePicker> 元素: 图 5. 仅显示日期 有了运行在 servlet 容器中的活动的、有效的 HotelStay 之后,就要开始讨论测试了:单元测试还 是集成测试? 精通Grails: 测试 Grails 应用程序(6)时间:2011-07-29 IBM Scott Davis对比单元测试和集成测试 如我前面所述,Grails 支持两种 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |