Tôi có thể kiểm tra đơn vị hầu hết các lớp Spring của mình mà không cần phải làm công cụ "Spring".Thử nghiệm đơn vị Các phương pháp Spring @Around AOP
tôi có thể đơn phương tư vấn xét nghiệm @Before mà không cần sử dụng Spring quá:
Ví dụ mã:
@Before("execution(* run(..)) && " + "" +
"target(target) && " +
"args(name)")
public void logName(Object target, String name) {
logger.info("{} - run: {}", target, name);
}
kiểm tra Ví dụ:
@Test
public void testLogName() {
aspect.setLogger(mockLogger);
aspect.logName(this,"Barry");
assertTrue(mockLogger.hasLogged("TestAspect - run: Barry"));
}
Tuy nhiên @Around giao dịch tư vấn với một đối tượng ProceedingJoinPoint :
@Around("com.xyz.myapp.SystemArchitecture.businessService()")
public Object doBasicProfiling(ProceedingJoinPoint pjp) throws Throwable {
// start stopwatch
Object retVal = pjp.proceed();
// stop stopwatch
return retVal;
}
Tôi không biết cách khởi tạo đối tượng ProceedingJoinPoint. Làm cách nào để kiểm tra lớp này mà không bắt đầu toàn bộ bối cảnh ứng dụng Spring?
Bạn có thể cung cấp mã hoàn chỉnh không, cách bạn đã triển khai trường hợp thử nghiệm cho @Trước khi? Tôi cần giúp đỡ trong việc thực hiện điều này. –