Java 使用cookies进行GWT单元测试
我想用cookies对GWT项目进行单元测试。我目前正在对代码的身份验证部分进行单元测试。因此,我需要能够将sessionID存储为cookie,并在以后检索它。我目前正在使用SyncProxy的普通测试用例(而不是GWTTestCase)来测试异步行为 问题在于,SyncProxy和单元测试都不是浏览器,都不支持cookie的管理。你知道我如何测试这个吗 完整地说,在尝试测试时,我得到以下错误:Java 使用cookies进行GWT单元测试,java,unit-testing,gwt,cookies,Java,Unit Testing,Gwt,Cookies,我想用cookies对GWT项目进行单元测试。我目前正在对代码的身份验证部分进行单元测试。因此,我需要能够将sessionID存储为cookie,并在以后检索它。我目前正在使用SyncProxy的普通测试用例(而不是GWTTestCase)来测试异步行为 问题在于,SyncProxy和单元测试都不是浏览器,都不支持cookie的管理。你知道我如何测试这个吗 完整地说,在尝试测试时,我得到以下错误: java.lang.UnsatisfiedLinkError: com.google.gwt.us
java.lang.UnsatisfiedLinkError: com.google.gwt.user.client.Cookies.uriEncode(Ljava/lang/String;)Ljava/lang/String;
at com.google.gwt.user.client.Cookies.uriEncode(Native Method)
at com.google.gwt.user.client.Cookies.setCookie(Cookies.java:177)
at com.google.gwt.user.client.Cookies.setCookie(Cookies.java:158)
at com.projects.client.Authentication.setSesssionCookie(Authentication.java:64)
at com.projects.client.Authentication$signInCredentialsHandler.onSuccess(Authentication.java:96)
at com.projects.client.Authentication$signInCredentialsHandler.onSuccess(Authentication.java:1)
at com.gdevelop.gwt.syncrpc.RemoteServiceInvocationHandler$1.run(RemoteServiceInvocationHandler.java:175)
Cookie单元测试方法 1) Cookie的GWT单元测试 2) 现在还不清楚为什么需要测试已经过单元测试的GWT代码。如果您的场景是集成测试,那么基于Selenium的浏览器测试用例是最佳选择 3) 使用模拟库或测试实用程序,如
我不推荐第三种方法。如果您的单元测试变得复杂,那么您的代码就复杂了,或者场景是错误的。正如SSR所说,cookies已经过测试,为什么您需要再次测试它??。我相信您需要一个cookie字符串,以便可以对您的方法进行单元测试。如果是这种情况,请尝试模拟该方法并返回所需的任何字符串,或者您可以忽略该方法调用我也在做同样的事情,这段代码在我的环境中工作。 您可以从cookie中获取sessionid
CookieManager cookiemanager = LoginUtils.loginFormBasedJ2EE("hostname", "username", "password");
SyncProxy.setBaseURL("baseURI");
StandardDispatchService rpcService = SyncProxy.createProxy(StandardDispatchService.class,
new ProxySettings().setCookieManager(cookiemanager));
System.out.println(cookiemanager.getCookieStore().getCookies().get(0));
String JSESSIONID = cookiemanager.getCookieStore().getCookies().get(0).getValue();
rpcService.execute(new XXXAction(XXX,XX));
使用Selenium测试是否超出了此范围?问题是我想测试身份验证类的signIn和signOut。但当我测试这些方法时,cookies被设置、检索……因此我发布了错误。我应该使用测试标志,将sessionID存储在某个地方还是其他什么地方?我不喜欢这两种选择,它们不能保持代码的整洁。谢谢。我没有考虑嘲弄。你提供的链接无效。wiki有一篇很好的文章: