GWTTestCase会话不再工作?

GWTTestCase会话不再工作?,gwt,gwttestcase,Gwt,Gwttestcase,我们有许多使用GWTTestCase的单元测试,其结构如下: 1) 请求登录 2) 在响应处理程序中,进行第二次需要登录的调用 这一切过去都可以正常工作,但从2.5.1升级到2.7.0后,测试失败,出现“需要登录”错误。问题似乎在于通话(丢失或未连接)之间的会话不再持续。特别是,我们已经验证了登录调用是否有效,是否正确设置了会话 还有另一个测试更新本地化选择的会话数据,但同样的模式也失败了 简化代码段: userService.login("user", "password", new Asyn

我们有许多使用GWTTestCase的单元测试,其结构如下:

1) 请求登录

2) 在响应处理程序中,进行第二次需要登录的调用

这一切过去都可以正常工作,但从2.5.1升级到2.7.0后,测试失败,出现“需要登录”错误。问题似乎在于通话(丢失或未连接)之间的会话不再持续。特别是,我们已经验证了登录调用是否有效,是否正确设置了会话

还有另一个测试更新本地化选择的会话数据,但同样的模式也失败了

简化代码段:

userService.login("user", "password", new AsyncFail<DatumResponse<User>>() {
        @Override
        public void onSuccess(DatumResponse<User> result) {
            final int userId = 1053;
            final int userDocId = 44;
            authService.isAuthorized(userId, OPERATION_READ, userDocId,
                  new AsyncFail<AuthorizationResponse>() {
                @Override
                public void onSuccess(AuthorizationResponse result) {
                    assertFalse("Unexpected error.", result.isError());
                }
            }
        }
}
这可能表明它与线程有关


我知道GWTTestCase通常不再是测试的首选方法;这是一个现有的测试主体。“使用Selenium”或其他建议并没有真正的帮助。

这可能与测试的异步性质有关吗?您是否使用delayTestFinish()/finishTest()定义异步调用?是的,我们使用。团队中有人找到了解决办法。。。那是很久以前的事了,我需要做一些挖掘来确认,但我认为我们为测试将Spring的“身份验证策略”或类似的设置为“全局”。
SecurityContextHolder.setStrategyName(SecurityContextHolder.MODE_GLOBAL);