1 2 3 4 5 6 | void testPassword() { mockForConstraintsTests(User) def user = new User(password:"foo") assertFalse user.validate() assertEquals "minSize", user.errors["password"] } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | void testUniqueLogin(){ def jdoe = new User(name:"John Doe", login:"jdoe", password:"password") def suziq = new User(name:"Suzi Q", login:"suziq", password:"wordpass") mockForConstraintsTests(User, [jdoe, suziq]) def jane = new User(login:"jdoe") assertFalse jane.validate() assertEquals "unique", jane.errors["login"] } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | void testMockDomain(){ def jdoe = new User(name:"John Doe", role:"user") def suziq = new User(name:"Suzi Q", role:"admin") def jsmith = new User(name:"Jane Smith", role:"user") mockDomain(User, [jdoe, suziq, jsmith]) //dynamic finder def list = User.findAllByRole("admin") assertEquals 1, list.size() //NOTE: criteria, Hibernate Query Language (HQL) // and Query By Example (QBE) are not supported } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | void testMockGorm(){ def jdoe = new User(name:"John Doe", role:"user") def suziq = new User(name:"Suzi Q", role:"admin") def jsmith = new User(name:"Jane Smith", role:"user") mockDomain(User, [jdoe, suziq, jsmith]) def foo = new User(login:"foo") foo.name = "Bubba" foo.role = "user" foo.password = "password" foo.save() assertEquals 4, foo.id //NOTE: id gets assigned assertEquals 3, User.findAllByRole("user").size() } |
1 2 3 4 | $ grails create-service Admin Created Service for Admin Created Tests for Admin |
1 2 3 4 5 6 7 8 9 10 11 12 13 | 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 } } } |
1 2 3 4 5 6 7 8 9 | 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) } |
1 2 3 4 5 6 7 8 9 | void testRestartServer() { def jdoe = new User(name:"John Doe", role:"user") def suziq = new User(name:"Suzi Q", role:"admin") mockLogging(AdminService) def adminService = new AdminService() assertTrue adminService.restartServer(suziq) assertFalse adminService.restartServer(jdoe) } |
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |