精通 Grails: 使用 Grails 进行单元测试(单元测试提速)
2009-11-26 00:00:00 来源:WEB开发网
清单 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() 方法添加到 AdminServiceclass 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)
}
更多精彩
赞助商链接