Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GWT RPCServlet-Junit+;getThreadLocalRequest_Java_Gwt_Junit_Mockito_Rpc - Fatal编程技术网

Java GWT RPCServlet-Junit+;getThreadLocalRequest

Java GWT RPCServlet-Junit+;getThreadLocalRequest,java,gwt,junit,mockito,rpc,Java,Gwt,Junit,Mockito,Rpc,在我的RPCServlet中,我使用AbstractRemoteServiceServlet.getThreadLocalRequest()方法来获取HttpSession。现在我想对它进行单元测试。我正在使用Mockito,并认为我可以模拟一切,但该方法是最终的和受保护的 在尝试获取会话的最后,是否有其他方法对AbstractRemoteServiceServlet.getThreadLocalRequest().getSession()进行单元测试。在我们的案例中,我们通过以下方式解决这种情

在我的RPCServlet中,我使用AbstractRemoteServiceServlet.getThreadLocalRequest()方法来获取HttpSession。现在我想对它进行单元测试。我正在使用Mockito,并认为我可以模拟一切,但该方法是最终的和受保护的


在尝试获取会话的最后,是否有其他方法对AbstractRemoteServiceServlet.getThreadLocalRequest().getSession()进行单元测试。在我们的案例中,我们通过以下方式解决这种情况:

使用GUICE获取实例(使它们在测试的给定部分可用)

RequestUitl
对象包含与会话相关的所有内容和更多服务器内容(这对于您的问题并不重要:D)。这里的重要部分是您可以访问
gethreadRequest()
,因此您可以访问
getSession()
方法

有什么问题?实例中不能有真正的
HttpServletRequest
对象,因此需要模拟它们。为此,我们在顶部指定了绑定规则

最后,您的测试应该是:

@RunWith(...)
@GuiceModules({TestServerModule.class, ....})
public class YourTest extends junit.framework.TestCase {

  @Inject RequestUtil requestUtil;
  ....

  @Test public void
  test_session_after_doing_something() {
     //GIVEN
     HttpSession mockedSession = requestUtil.getThreadRequest().getSession();
     ....
  }


  ....
}

对不起,我解释得不好,最近我很忙,我还想帮助别人。有时候,我很难在这样的环境中保持积极。如果你有任何问题,就问!:谢谢!
@RunWith(...)
@GuiceModules({TestServerModule.class, ....})
public class YourTest extends junit.framework.TestCase {

  @Inject RequestUtil requestUtil;
  ....

  @Test public void
  test_session_after_doing_something() {
     //GIVEN
     HttpSession mockedSession = requestUtil.getThreadRequest().getSession();
     ....
  }


  ....
}