精通Grails: 用JSON和Ajax实现异步Grails - 编程入门网
,以确认是否返回 “Not Found”。清单 6 显 示了返回的无效的 JSON 对象:
清单 6. JSON 中的一个无效的 AirportMapping 对象
当然,这样的 “考验” 不能替代真正的测试。 精通Grails: 用JSON和Ajax实现异步Grails(4)时间:2011-08-02 IBM Scott Davis测试控制器 在 test/integration 中创建 AirportMappingControllerTests.groovy。添加清单 7 中的 2 个测试 : 清单 7. 测试一个 Grails 控制器 class AirportMappingControllerTests extends GroovyTestCase{ void testWithBadIata (){ def controller = new AirportMappingController() controller.metaClass.getParams = {-> return ["id":"foo"] } controller.iata() def response = controller.response.contentAsString assertTrue response.contains("\"name\":\"Not found\"") println "Response for airport/iata/foo: ${response}" } void testWithGoodIata(){ def controller = new AirportMappingController() controller.metaClass.getParams = {-> return ["id":"den"] } controller.iata() def response = controller.response.contentAsString assertTrue response.contains("Denver") println "Response for airport/iata/den: ${response}" }} 精通Grails: 用JSON和Ajax实现异步Grails(5)时间:2011-08-02 IBM Scott Davis输入 $grails test-app 运行测试。在 JUnit HTML 报告中应该可以看到成功信息,如图 2 所示。( 要回顾 Grails 应用程序的测试,请参阅 “测试 Grails 应用程序”)。 图 2. 在 JUnit 中测试通过 看看 清单 7 中的 testWithBadIata() 中发生了什么。第一行(显然)是创建 AirportMappingController 的一个实例。这是为了后面可以调用 controller.iata() 并针对产生的 JSON 写一个断言。要使调用失败(在此就是如此)或成功(在 testWithGoodIata() 中),需要用一个 id 项为 params hashmap 提供种子。通常,查询字符串被解析并存储到 params 中。但是,在这里,没 有 HTTP 请求被解析。相反,我使用 Groovy 元编程直接覆盖 getParams 方法,使期望的值出现在返回 的 HashMap 中。(要了解关于 Groovy 元编程的更多信息,请参阅 参考资料)。 现在,JSON 产生器已经可以工作,并且经过了测试,接下来看看如何在一个 Web 页面中使用 JSON。 设置初始的 Google Map 我希望可通过 http://localhost:9090/trip/trip/plan 访问旅行计划页面。这意味着将一个 plan 闭包添加到 grails-app/controllers/TripController.groovy 中,如清单 8 所示: 清单 8. 设置控制器 class TripController { def scaffold = Trip def plan = {}} 由于 plan() 不是以 render() 或 redirect() 结束,根据约定优于配置原则,显示的将是 grails- app/views/trip/plan.gsp。用清单 9 中的 HTML 代码创建文件。(要回顾这个 Google Map 的基础原理 ,请参阅 “Grails 服务和 Google 地图”)。 清单 9. 设置初始 Google Map <html> <head> <title>Plan</title> <script src="http://maps.google.com/maps?file=api&am |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |