1

嗨,我有一个 WebFlowTestCase 并且工作正常,但是当我需要测试同一控制器(groovy)中的另一个流时遇到了问题。这是我的控制器的样子:

        class MyController {

    def someService
    def dateHelper = new DateHelper()
    def index = {... }
    def myCreateFlow = {
              start{}
              createCase{}
              finishCancel{
    }
    def myViewFlow = {...}
    def myEditFlow = {...}
    }

我已经成功地为myCreateFlow创建了测试,如下所示:

  class MyControllerTest  extends WebFlowTestCase {

        def myController =  new MyController();

        @Override
        public Object getFlow() {
            // TODO Auto-generated method stub
             return myController.myCreateFlow
        }
        protected void setUp() {
            super.setUp()
        }

        protected void tearDown() {
            super.tearDown()
        }

        void testmyCreateFlow()
        {
            ...
        }
}

我的问题是 myEditFlow 和 myViewFlow 怎么样?getFlow() 只返回 myCreateFlow 时,如何注册或使用它?有没有我可以在一个 webflowtest 中使用所有这些而不创建新的 webflowtestclass 的方法?或者有没有一种方法可以将它放在 getflow 中,使用一些 switch/if else 方法,例如:

@Override
            public Object getFlow() {
                // TODO Auto-generated method stub
                if condition
                            return myController.myCreateFlow
                         else return myController.myEditFlow
            }

因为当我尝试创建 testmyEditFlow() 时出现以下错误,我知道这是因为 get 流仅返回 myCreateFlow。至少这是我对测试错误消息的看法。

在流“test”中找不到 ID 为“myEditFlow”的状态——已知状态 ID 为“array['start','createCase'...'finishCancel']'

4

1 回答 1

0

您可以在 setUp 方法中注册其他流程,如下所示:

 protected void setUp() {
    super.setUp()
    registerFlow("myController/myEdit", myController.myEditFlow)
    registerFlow("myController/myView", myController.myViewFlow)
}
于 2013-08-27T20:23:10.917 回答