小编Pet*_*ony的帖子

在大型现有Java代码库中构建测试套件

我正在开发一个现有代码库的Web应用程序,可能已经存在了10年,有大约1000个类文件和大约100,000行代码.好消息是代码组织良好,业务逻辑与控制器域分离,并且具有高度的可重用性.坏消息是只有测试套件的开头(JUnit); 最多可能有12打测试.

代码通常用于企业Java项目.有一个stuts-esque控制器包,该模型几乎完全由数据对象组成,有一个类似于数据库层的hibernate,主要封装在数据访问对象中,还有一些简单,自包含和逻辑的服务包.构建此测试套件的最终目标是实现持续集成开发过程.

  • 您将如何为这样的应用程序构建测试套件?
  • 您将使用哪些工具来简化流程?

欢迎任何建议.谢谢!

java testing junit servlets

10
推荐指数
1
解决办法
865
查看次数

Java Restful Web Services(jax rs)身份验证模式

我已经开始使用JAX-RS为我的Web应用程序创建一个简单的restful接口.目前,它只被一个内部客户端使用(只读),该客户端可以访问所有应用程序数据,我使用http基本身份验证进行访问.我想开始使用它作为我的应用程序的视图层的一部分,并且只有当用户通过Web应用程序登录时才允许某些操作.我正在努力寻找一种模式,允许我以优雅的方式使用两种形式的身份验证,而无需重复大量代码.这大致是我提出的:

首先是一个用于加载应用程序会话的util类,它存储在数据库中.

public class RestUtil {
    public static AppSession getAuthenticatedSession(HttpServletRequest request) {
        AppSession session;
        String remoteUser = request.getRemoteUser();
        if (remoteUser != null) {
            session = SessionRepository.loadSessionByRemoteUser(remoteUser);
        } else {
            session = SessionRepository.loadSessionById(request.getSession().getId());
        }
        return session;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我们的资源,只有一个方法只能由经过身份验证的用户访问,或者我们的http基本身份验证客户端:

@Path("/protected/resource")
public class ProtectedResource {
    @GET
    @Produces(MediaType.TEXT_JSON)
    @Path("{userId}")
    public String getProtectedResourceJson(@Context HttpServletRequest request, @PathParam("userId") Integer userId) {
        // Return Charity List XML
        AppSession session = RestUtil.getAuthenticatedSession(request);

        if (session.canAccessUser(userId))  //get Json...
    }
}
Run Code Online (Sandbox Code Playgroud)

对于这个问题,这是AppSession的最基本视图:

public class AppSession {
    User authenticatedUser;
    String remoteUser;

    public …
Run Code Online (Sandbox Code Playgroud)

java design-patterns restful-authentication jax-rs

9
推荐指数
1
解决办法
3777
查看次数