WEB开发网
开发学院软件开发Java 精通 Grails: 创建自定义插件 阅读

精通 Grails: 创建自定义插件

 2009-10-26 00:00:00 来源:WEB开发网   
核心提示: 注意,将 transactional 标志设置为 false 后,精通 Grails: 创建自定义插件(9),我们声明了 shortenUrlService 变量,然后在 setUp() 方法中初始化服务,要查看输出(如图 3 所示),再次输入 grails test-app,为每个服务调用 s

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

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


图 2. 注入的 log 对象导致单元测试失败
精通 Grails: 创建自定义插件

图片看不清楚?请点击这里查看原图(大图)。

如上所示,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 链接。

上一页  4 5 6 7 8 9 10  下一页

Tags:精通 Grails 创建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接