0

我们有许多使用 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());
                }
            }
        }
}

我们能够通过在测试套件中添加以下内容来部分解决这个问题:

SecurityContextHolder.setStrategyName(SecurityContextHolder.MODE_GLOBAL);

这可能表明它与线程有关?

我了解 GWTTestCase 通常不再是首选的测试方法;这是现有的测试机构。“使用 Selenium”或其他建议并没有真正的帮助。

4

0 回答 0