0

我正在使用 cucumber-jvm 为使用 Struts 2 的遗留项目编写行为测试。

我已经成功地用于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

问题是,随着我正在测试越来越多的具有“列表”方法的功能,我的步骤定义将变得越来越复杂,因为我必须确定我需要调用哪个 Action 的方法。

解决方案是动态调用动作,就像 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();
4

0 回答 0