Unit testing Grails 1.3.3:controller.redirectArgs.action未填充
有人知道最新版本的Grails(1.3.3)中controller.redirectArgs.action发生了什么吗?它过去工作正常,但现在我得到NPE当我使用它Unit testing Grails 1.3.3:controller.redirectArgs.action未填充,unit-testing,grails,grails-controller,Unit Testing,Grails,Grails Controller,有人知道最新版本的Grails(1.3.3)中controller.redirectArgs.action发生了什么吗?它过去工作正常,但现在我得到NPE当我使用它 class FooController { def someRedirect = { redirect(action:"bar") } } class FooControllerTests extends grails.test.ControllerUnitTestCase { void t
class FooController {
def someRedirect = {
redirect(action:"bar")
}
}
class FooControllerTests extends grails.test.ControllerUnitTestCase {
void testSomeRedirect() {
controller.someRedirect()
assertEquals "bar", controller.redirectArgs.action
}
}
在本例中,controller.redirectArgs已为null…有趣的是,我遵循了此处的文档: 我打电话: assertEquals“nextAvailable”,controller.redirectArgs.action 我得到以下信息:
junit.framework.AssertionFailedError: junit.framework.AssertionFailedError: expected:<nextAvailable> but was:<com.***.***.XxxxXxxxController$_closure1@3da2cda9>
这也通过了:
assertEquals controller.nextAvailable, controller.redirectArgs[action]
在将动作和字符串进行比较时,我遇到了同样的问题。以下内容对我有用,在哪里 控制器看起来像:
class SomeObjectController {
def index = { redirect(action:list,params:params) }
def list = {
params.max = Math.min( params.max ? params.max.toInteger() : 10, 100)
[
someObjectInstanceList: someObject.list( params ),
somObjectInstanceTotal: someObject.count()
]
}
}
class SomeObjectControllerTests extends ControllerUnitTestCase {
void testIndexRedirectToListAction(){
controller.index()
assertEquals controller.list, controller.redirectArgs.action
}
}
测试类看起来像:
class SomeObjectController {
def index = { redirect(action:list,params:params) }
def list = {
params.max = Math.min( params.max ? params.max.toInteger() : 10, 100)
[
someObjectInstanceList: someObject.list( params ),
somObjectInstanceTotal: someObject.count()
]
}
}
class SomeObjectControllerTests extends ControllerUnitTestCase {
void testIndexRedirectToListAction(){
controller.index()
assertEquals controller.list, controller.redirectArgs.action
}
}