Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing Grails 1.3.3:controller.redirectArgs.action未填充_Unit Testing_Grails_Grails Controller - Fatal编程技术网

Unit testing Grails 1.3.3:controller.redirectArgs.action未填充

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

有人知道最新版本的Grails(1.3.3)中controller.redirectArgs.action发生了什么吗?它过去工作正常,但现在我得到NPE当我使用它

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
    }
}