Struts 2 を使用するレガシー プロジェクトの cucumber-jvm で動作テストを作成しています。
cucumber-jvm
アプリケーションの機能の動作をテストするために使用しました。しかし、私は間違った出発点を選択したと思います: 私は現在アクションを作成し、そのメソッドを直接呼び出しています:
ユーザー.機能
Given that I am in the Users Page (I create a UserAction object in my Step Definition)
When I press "list" (I call the userAction.list() method)
Then I should see the following users: // list of users
問題は、呼び出す必要があるアクションのメソッドを特定する必要があるため、「リスト」メソッドを持つ機能をますますテストするにつれて、ステップ定義がますます複雑になることです。
解決策は、jsp ページが行うように、アクションを動的に呼び出すことです。Javaからそれを行うにはどうすればよいですか? 私は Struts 2 World を初めて使用しますが、これまでのところ、jsp ページを使用した DispatchAction チュートリアルをいくつか見つけました。
私はすでにActionContext、Request、およびSessionを持っています。
// Mock a session
session = Mockito.mock(HttpSession.class);
// mock a request
request = Mockito.mock(HttpServletRequest.class);
Mockito.when(request.getSession()).thenReturn(session);
// create a context
Map<String, Object> contextMap = new HashMap<String, Object>();
contextMap.put(StrutsStatics.HTTP_REQUEST, request);
ActionContext.setContext(new ActionContext(contextMap));
ActionContext.getContext().getActionInvocation();