精通 Grails: 创建自定义插件
2009-10-26 00:00:00 来源:WEB开发网与前面的集成测试相似,确保将 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:")
}
}
- ››创建SQL2005自动备份,定期删除的维护计划
- ››创建动态表单 javascript
- ››精通Photoshop之通道详解
- ››创建基于PPTP的站点到站点VPN连接:ISA2006系列之...
- ››创建基于L2TP的站点到站点的VPN连接:ISA2006系列...
- ››创建一个Twisted Reactor TCP服务器
- ››创建Windows Mobile上兼容性好的UI 程序
- ››创建android的Service
- ››创建远古部落环境与原住民角色
- ››创建并扩展Apache Wicket Web应用
- ››创建不在任务条中显示窗口按钮的应用
- ››创建 Android 文件系统(Root file system)
更多精彩
赞助商链接