对于Controller的单元测试,Grails也提供了很方便的支持,使得书写非常简单,有代码为证:
单元测试代码
- class CategoryControllerTests extends GroovyTestCase {
-
- void setUp(){
- def test1= new Category(name: "Test1", parent: null).save()
- def test2= new Category(name: "Test2", parent: null).save()
- def test3= new Category(name: "Test3", parent: null).save()
-
- def test11= new Category(name: "Test11", parent: test1).save()
- def test12= new Category(name: "Test12", parent: test1).save()
- def test21= new Category(name: "Test21", parent: test2).save()
- }
-
- void testListRoot() {
- def controller= new CategoryController()
- //categoryList对应返回的model
- def categoryList= controller.list()?.categoryList
-
- assertEquals 3, categoryList.size()
- assertEquals 'Test1', categoryList[0].name
- assertEquals 'Test2', categoryList[1].name
- assertEquals 'Test3', categoryList[2].name
- }
-
- void testListTest1(){
- def controller= new CategoryController()
- //其中的params表示的是requestparameter,后面的id是传入的参数。
- //对于session之类以此类推。
- controller.params.id= 1
- def categoryList= controller.list()?.categoryList
-
- assertEquals 2, categoryList.size()
- assertEquals 'Test11', categoryList[0].name
- assertEquals 'Test12', categoryList[1].name
- }
- }
Controller部分代码
- class CategoryController {
- def index = { redirect(action:list,params:params) }
-
- def allowedMethods = [save:'POST']
-
- def list = {
- if(!params.id){
- return [ categoryList: Category.findAllByParentIsNull() ]
- }else{
- def category= Category.get(params.id)
- if(category){
- return [ categoryList: Category.findAll("from Category c where c.parent.id=$params.id"), path: category.getPath()]
- }else{
- flash.message = "Category not found with id ${params.id}"
- redirect(action:list)
- }
- }
- }
- ......
- }
以上的代码基本上向开发者隐藏了背后的Mock机制,使用起来也更加简单方便。对于如此简单就能完成Controller的测试,我们没有理由不把TDD进行到底。
分享到:
相关推荐
Grails 中文 参考手册
grails中文参考手册 学习资料 groovy
grails 中文第二版
grails 中文 API grails 中文 API
Grails1.1最新 中文 文档 当今的Java Web开发技术显得过于复杂,相对于它本身的需要来说。现在主流的Java Web框架也是异常复杂,而且没有很好的遵循 Don't Repeat Yourself (DRY) 法则。 因此我们要以一种新的思维...
Grails Grails Grails Grails Grails
Grails1.1中文文档
9.1 单元测试 9.2 集成测试 9.3 功能测试 10. 国际化 10.1 理解信息绑定 10.2 改变Locales 10.3 读取信息 11. 安全 11.1 预防攻击 11.2 字符串的编码和解码 11.3 身份验证 11.4 关于安全的插件 11.4.1 Acegi 11.4.2 ...
grails 中文文档+grails-fckeditor-0.9.5.zip插件
grails中的上传,下载,需要的请下载
1.7 单元测试 1.8 本章小结 第2章 groovy动态语言 2.1 groovy和java的异同 2.1.1 相同点 2.1.2 不同点 2.2 基础知识 2.1.1 类声明 . 2.2.2 语言级断言(assertion) ...
Grails 最新的 v1.1版的中文文档,chm格式,Grails是一套快速开发Web应用的开源框架,基于Groovy编程语言,并构建于Spring、Hibernate和其它标准Java框架之上,能为大家带来超高效率的一站式框架。
比较难找的grails的资料,我也是找了很久才找到的。需要grails相关的拿走
grails 中文手册,grails应该不用说明是啥东西了吧,流行的脚本语言groovy应用框架。
比较详细的grails中文文档,有所有命令行解释,还有grails的一个完整的学习过程的资料
Grails权威指南Grails权威指南Grails权威指南Grails权威指南Grails权威指南Grails权威指南
grails 中文帮助 中文帮助grails 中文帮助 中文帮助grails 中文帮助 中文帮助grails 中文帮助 中文帮助