반응형
유닛 테스트 Spring @Around AOP
저는 봄 수업의 대부분을 봄 "물건"을 할 필요 없이 유닛 테스트를 할 수 있습니다.
Spring을 사용하지 않아도 @Before Advision 방법을 단위 테스트할 수 있습니다.
코드 예제:
@Before("execution(* run(..)) && " + "" +
"target(target) && " +
"args(name)")
public void logName(Object target, String name) {
logger.info("{} - run: {}", target, name);
}
예제 검정:
@Test
public void testLogName() {
aspect.setLogger(mockLogger);
aspect.logName(this,"Barry");
assertTrue(mockLogger.hasLogged("TestAspect - run: Barry"));
}
그러나 @Around 조언은 ProceedingJoinPoint 개체를 처리합니다.
@Around("com.xyz.myapp.SystemArchitecture.businessService()")
public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {
// start stopwatch
Object retVal = pjp.proceed();
// stop stopwatch
return retVal;
}
ProceedingJoinPoint 개체를 인스턴스화하는 방법을 모르겠습니다.Spring 애플리케이션 컨텍스트 전체를 시작하지 않고 이 클래스를 테스트하려면 어떻게 해야 합니까?
프로그래밍 방식으로 프록시를 만들어 스프링 측면을 테스트할 수 있습니다.
MyInterface target = new MyClass();
AspectJProxyFactory factory = new AspectJProxyFactory(target);
MyAspect aspect = new MyAspect(arg);
factory.addAspect(aspect);
MyInterface proxy = factory.getProxy();
그러면 메소드를 호출할 수 있습니다.proxy
그리고 주장을 합니다.aspect
,proxy
그리고.target
.
언급URL : https://stackoverflow.com/questions/11436600/unit-testing-spring-around-aop-methods
반응형
'bestsource' 카테고리의 다른 글
어레이에서 여러 Ajax 호출 및 완료 시 콜백 처리 (0) | 2023.08.12 |
---|---|
비 MAC OS에서 npm 설치 스팅 fevent 경고를 해결하는 방법은 무엇입니까? (0) | 2023.08.12 |
PowerShell 스크립트에서 사용하는 .NET 버전은 무엇입니까? (0) | 2023.08.12 |
오류: "frontend docker file.v0으로 해결하지 못했습니다." (0) | 2023.08.07 |
"사일런트 모드"에서 작동할 수 있습니까? (0) | 2023.08.07 |