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 のみを返す場合、どのように登録または使用しますか? 新しい webflowtestclass を作成せずに、1 つの webflowtest でそれらすべてを使用する方法はありますか? または、次のような switch/if else メソッドを使用して getflow 内に配置できる方法はありますか。

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

coz 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 に答える