WEB开发网
开发学院软件开发Java 精通 Grails: 使用 Grails 进行单元测试(单元测试... 阅读

精通 Grails: 使用 Grails 进行单元测试(单元测试提速)

 2009-11-26 00:00:00 来源:WEB开发网   
核心提示: 清单 14. 创建服务$grailscreate-serviceAdminCreatedServiceforAdminCreatedTestsforAdmin毫无疑问,AdminService.groovy 文件会出现在 grails-app/services 目录中,精通 Grails: 使用


清单 14. 创建服务
$ grails create-service Admin 
 
Created Service for Admin 
Created Tests for Admin 

毫无疑问,AdminService.groovy 文件会出现在 grails-app/services 目录中。如果查看 test/unit 目录,应该会看到一个名为 AdminServiceTests.groovy 的 GrailsUnitTestCase。

向 AdminService 添加一个假设性方法,仅允许 admin 角色中的用户重启服务器,如清单 15 所示:


清单 15. 将 restart() 方法添加到 AdminService
class AdminService { 
 boolean transactional = true 
 
 def restartServer(User user) { 
  if(user.role == "admin"){ 
   //restart the server 
   return true 
  }else{ 
   log.info "Ha! ${user.name} thinks s/he is an admin..." 
   return false 
  } 
 } 
} 

对此服务的测试非常简单。将 testRestartServer() 方法添加到 test/unit/AdminServiceTests.groovy,如清单 16 所示:


清单 16. 一个将会失败的服务测试
void testRestartServer() { 
 def jdoe = new User(name:"John Doe", role:"user") 
 def suziq = new User(name:"Suzi Q", role:"admin") 
 
 //NOTE: no DI in unit tests 
 def adminService = new AdminService() 
 assertTrue adminService.restartServer(suziq) 
 assertFalse adminService.restartServer(jdoe) 
} 

上一页  5 6 7 8 9 10 

Tags:精通 Grails 使用

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