Java 在Stripes框架中,当使用MockRoundtrip时,如何在ActionBean中注入依赖项字段?

Java 在Stripes框架中,当使用MockRoundtrip时,如何在ActionBean中注入依赖项字段?,java,dependency-injection,stripes,Java,Dependency Injection,Stripes,下面是设置条纹以使用模拟往返的示例: private void setupStripes() { context = new MockServletContext("testresults"); // Add the Stripes Filter Map<String,String> filterParams = new HashMap<String,String>(); filterParams.put("ActionResolver.

下面是设置条纹以使用模拟往返的示例:

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));
}
private void setupstrips(){
context=newmockservletcontext(“testresults”);
//添加条纹过滤器
Map filterParams=new HashMap();
filterParams.put(“ActionResolver.Packages”、“com.test.project.action、com.test.results.action”);
addFilter(StripesFilter.class,“StripesFilter”,filterParams);
//添加条纹调度器
setServlet(DispatcherServlet.class,“StripesDispatcher”,null);
mockRoundtrip=新的mockRoundtrip(上下文,MyActionBean.class);
assertNotNull(mockRoundtrip.getActionBean(MyActionBean.class));
}

问题是,最后一行总是不能通过断言。您必须首先调用
mockroundtrip.execute(“eventName”)
,但到那时,您的操作bean已经为您创建好了。如果您的ActionBean做的事情依赖于appserver(例如:使用EJB,进行JNDI查找),那么您永远无法完成
execute()
的调用。我希望能够做的是获取我的ActionBean实例,依赖项注入它的字段,然后调用
execute()
。有什么方法可以做到这一点吗?

我在邮件列表上发布了这一点,并得到了以下答案:

显然这家伙在测试中使用了拦截器

我想这也是你想要的。编写一个执行“注入”的Stripes拦截器,只为单元测试注册这个拦截器。在我看来,你不必存根任何东西

顺便说一句,@SpringBean就是这么做的:它也是基于拦截的


总之,创建一个仅在运行测试代码时使用的拦截器。此拦截器可以依赖注入您正在测试的操作bean。

我在邮件列表中发布了此消息,并得到了以下答案:

显然这家伙在测试中使用了拦截器

我想这也是你想要的。编写一个执行“注入”的Stripes拦截器,只为单元测试注册这个拦截器。在我看来,你不必存根任何东西

顺便说一句,@SpringBean就是这么做的:它也是基于拦截的

总之,创建一个仅在运行测试代码时使用的拦截器。这个拦截器可以依赖注入您正在测试的动作bean