下面是设置 Stripes 以使用 MockRoundtrip 的示例:
private void setupStripes() {
context = new MockServletContext("testresults");
// Add the Stripes Filter
Map<String,String> filterParams = new HashMap<String,String>();
filterParams.put("ActionResolver.Packages", "com.test.project.action,com.test.results.action");
context.addFilter(StripesFilter.class, "StripesFilter", filterParams);
// Add the Stripes Dispatcher
context.setServlet(DispatcherServlet.class, "StripesDispatcher", null);
mockRoundtrip = new MockRoundtrip(context, MyActionBean.class);
assertNotNull(mockRoundtrip.getActionBean(MyActionBean.class));
}
问题是最后一行总是使断言失败。您必须先调用mockroundtrip.execute("eventName")
,但到那时,您的操作 bean 已经为您创建好了。如果您的操作 bean 执行依赖于应用服务器的事情(例如:使用 EJB、进行 JNDI 查找),您将永远无法完成对execute()
. 我想做的是获取我的动作 bean 实例,依赖注入它的字段,然后调用execute()
. 有没有办法做到这一点?