2012-05-01 4 views

답변

0

주석 기반 웹 서비스의 장점 중 하나는 쉽게 단위 테스트 할 수 있다는 것입니다. 보안을 위해 봄의 서블릿 필터를 사용하는 경우

class WebServiceEndpoint { 

    @Path("/foo/{fooId}") 
    @POST 
    @Produces({ MediaType.APPLICATION_XML }) 
    public Response doFoo(@PathParam("fooId") Integer fooId) { 
     /// ... web service endpoint implementation 
    } 

} 

는 다음 doFoo 방법에 대한 보안 관련 코드가 안된다, 그래서 당신은 단지 방법을 새로운 WebServiceEndpoint 클래스를 생성하고 호출 할 수 있습니다. 이것이 보안을 무력화하는 한 가지 방법입니다.

로그인 프로세스가 '어렵다'고 말하면 어떻게됩니까? 한 번 로그인하면 다른 단위 테스트에서 동일한 코드를 다시 사용할 수 있습니다 (예 : @Before 방법).

0

그냥 pojo로 테스트하십시오. 무엇이든 통과하고, 무엇이든 돌아오고, 앱 컨텍스트를 전혀로드하지 않습니다. 이는 통합 테스트 일 것입니다.

로드 된 프레임 워크없이 기능을 쉽게 테스트 할 수있는 기능은 스프링의 주요 장점 중 하나입니다.

0

"어렵습니다"라고 말하지 않으므로 REST 서비스에서 테스트 할 Java 메소드 (인증 결과가 필요한)가 있다고 가정합니다. Spring은 인증 결과를 조롱하는 유틸리티를 가지고있다. 예를 들어, 당신은 A @Before 설정 방법에서 다음을 수행 할 수

Object principal = null; // fix this 
Object credentials = null; // fix this 
Authentication auth = new org.springframework.security.authentication.TestingAuthenticationToken(principal, credentials); 
SecurityContextHolder.getContext().setAuthentication(auth); 

그러나 다시, 당신은 당신이 실제로 해결하려는 문제가 무엇 말했다하지 않은를 ...

관련 문제