Java 用Mockito测试GWTP
我正在使用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
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;