Java 用Mockito测试GWTP

Java 用Mockito测试GWTP,java,gwt,guice,mockito,gwt-platform,Java,Gwt,Guice,Mockito,Gwt Platform,我正在使用Mockito测试我的GWTP项目,但出现了一些错误: com.google.inject.CreationException: Guice creation errors: 1) No implementation for javax.servlet.http.HttpServletRequest was bound. while locating com.google.inject.Provider<javax.servlet.http.HttpServletR

我正在使用Mockito测试我的GWTP项目,但出现了一些错误:

    com.google.inject.CreationException: Guice creation errors:

1) No implementation for javax.servlet.http.HttpServletRequest was bound.
  while locating com.google.inject.Provider<javax.servlet.http.HttpServletRequest>
    for parameter 0 at com.gwtplatform.dispatch.server.guice.request.DefaultRequestProvider.<init>(DefaultRequestProvider.java:35)
  at com.gwtplatform.dispatch.server.guice.DispatchModule.configure(DispatchModule.java:135)
以下是TestActionHandler的代码:

public class TestActionHandler implements ActionHandler<TestAction, TestResult> {

    private final Provider<HttpServletRequest> provider;

    @Inject
    public RetrieveEventsUsingCategoryIdActionHandler(
            final Provider<HttpServletRequest> provider) {
        this.provider = provider;
    }

    @Override
    public TestResult execute(TestAction action, ExecutionContext context) {
        //handle action
    }
}
公共类TestActionHandler实现ActionHandler{
私人最终提供者;
@注入
公共检索VentsusingCategoryIDActionHandler(
最终提供者(最终提供者){
this.provider=提供者;
}
@凌驾
公共TestResult执行(TestAction操作、ExecutionContext上下文){
//处理动作
}
}
有人能帮我修一下吗?太多了

多亏了丁德,我解决了这个问题

似乎测试正在抱怨
HttpServletRequest
缺少
提供程序
,因此在测试的
设置
中,我为
HttpServletRequest
添加了一个提供程序,问题就解决了。以下是工作代码:

@Mock
private TestActionHandler mockTestActionHandler;
@Mock
private HttpServletRequest servletRequest;

@Before
public void setUp() {
    Injector injector = Guice.createInjector(new ServerModule(), new MockHandlerModule() {

        @Override
        protected void configureMockHandlers() {
                bindMockActionHandler(TestActionHandler.class, 
                        mockTestActionHandler);
            }
        });

        @SuppressWarnings("unused")
        @Provides 
        public HttpServletRequest createServletRequest() { 
            return servletRequest; 
        } 
}

该字段在测试类中同时使用@Bind和@Mock进行注释

@Bind
@Mock
private HttpServletRequest request;

使用mycila-testing-guice2插件对我有效。

您的ServerModule和MockHandlerModule类看起来如何?
@Bind
@Mock
private HttpServletRequest request;