如何为Struts 2编写行为测试?

时间:2013-09-11 19:51:59

标签: java struts2 cucumber-jvm

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

我已成功使用cucumber-jvm来测试应用程序功能的行为。但我认为我选择了错误的起点:我正在创建动作并直接调用其方法,如下:

users.feature

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();

0 个答案:

没有答案
相关问题