如何测试一个SpringBoot方面的方法与JUnit?

0

的问题

我用Springboot我想测试我的新定义注JUnit.

我原来的码我的 @CronLogger 定义的注解 importData 方法:

@Service
@RequiredArgsConstructor
@Slf4j
public class ImportTask {
  @Async
  @Scheduled(cron = "${import}")
  @SchedulerLock(name = "import")
  @CronLogger()
  public void importData() {
    ...
  }
}

我定义的注释:

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface CronLogger {
 
}

我的定义方面的方法:

@Aspect
@Component
@EnableAspectJAutoProxy
public class CronLoggerAspect {
    
    private static final Logger log = LoggerFactory.getLogger(CronLoggerAspect.class);
    
    @Around("@annotation(CronLogger)")
    public Object trace(ProceedingJoinPoint joinPoint) throws Throwable {
        System.out.println("CronLogger");
        log.debug("CronLogger");
        return joinPoint.proceed();
    }
}

我JUnit试验:

@Slf4j
@ExtendWith(MockitoExtension.class)
@Import(AnnotationAwareAspectJAutoProxyCreator.class) // activate aspect
class ImportTaskTest {

    @InjectMocks
    private ImportTask importTask;

    @Test
    void importData() throws JSchException, SftpException, SftpTransfertException {
        // execute test
        importTask.importData();
    }

}

结果是确定的,但没装配加载静执行方面的方法码。

1

最好的答案

0
@ExtendWith(SpringExtension.class)
@SpringBootTest
@ActiveProfiles("sit")
class TaskTest {

    @Autowired
    private TaskService taskService;

    @Test
    void testCronLoggerSuccess() throws CronException {
        taskService.testCronLogger("test Success");
        ...
    }
}

Nota: @ActiveProfiles("sit") 使用H2数据库。

2021-11-29 10:34:33

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................