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

精通 Grails: 创建自定义插件

 2009-10-26 00:00:00 来源:WEB开发网   
核心提示: 与前面的集成测试相似,确保将 transactional 标记设置为 false,精通 Grails: 创建自定义插件(8),这些调用不涉及任何数据库,所以不必将它们封装到一个事务中,您应将它保留在 test/unit 目录中,以便我能够向您展示几个单元测试技巧, 注意,isgd() 方法将记录

与前面的集成测试相似,确保将 transactional 标记设置为 false。这些调用不涉及任何数据库,所以不必将它们封装到一个事务中。

注意,isgd() 方法将记录任何企图缩短一个无效 URL 的日志。所有 Grails 工件将在运行时使用一个 log 对象注入。可以调用 log 对象上与想要的日志级别相对应的方法,这些日志级别包括: debug、info 和 error 等(参见 参考资料 了解关于日志记录的更多信息)。您稍后将会看到,编写单元测试时,处理这个注入的 log 对象需要一个额外步骤。

当 Grails 为您创建服务时,它将把相应的测试添加到 test/unit 目录。通常,您需要将 ShortenUrlServiceTests.groovy 移动到 test/integration 目录,因为在语义上,它是一个集成测试,而不是一个单元测试 — 依赖外部资源测试服务。但现在,您应将它保留在 test/unit 目录中,以便我能够向您展示几个单元测试技巧。将清单 10 中的代码添加到 ShortenUrlServiceTests.groovy。


清单 10. 测试 ShortenUrl 服务
import grails.test.* 
 
class ShortenUrlServiceTests extends GrailsUnitTestCase { 
  def transactional = false 
  def shortenUrlService 
  
  protected void setUp() { 
    super.setUp() 
    shortenUrlService = new ShortenUrlService() 
  } 
 
  protected void tearDown() { 
    super.tearDown() 
  } 
 
  void testTinyUrl() { 
   def shortUrl = shortenUrlService.tinyurl("http://grails.org") 
   assertEquals "http://tinyurl.com/3xfpkv", shortUrl 
  } 
 
  void testIsGd() { 
   def shortUrl = shortenUrlService.isgd("http://grails.org") 
   assertEquals "http://is.gd/2oCZR", shortUrl     
  } 
 
  void testIsGdWithBadUrl() { 
   def shortUrl = shortenUrlService.isgd("IAmNotAValidUrl") 
   assertTrue shortUrl.startsWith("An error occurred:") 
  } 
} 

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

Tags:精通 Grails 创建

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