如何对返回CometableFuture的异步方法进行单元测试

时间:2020-11-04 09:52:27

标签: java spring unit-testing asynchronous

我试图使用配置类在异步方法(使用@Async spring boot注解)上编写单元测试(使用mockito和junit),以限制创建的并行线程的数量。

这是异步方法:

C:\Users\elmo\AppData\Local\Android\Sdk 

和配置类

@Service
public class AsyncCallsService extends AbstractService {

    private static final Logger LOG = LoggerFactory.getLogger(AccountsService.class);

    private static final String ERROR_MESSAGE_ACCOUNT = "Problème lors de l'appel au service getAccount: ";

    @Autowired
    private ContractAPIDAO contractAPIDAO;

    @Async("taskExecutor")
    public CompletableFuture<List<ContractAndResourceDTO>> asyncGetAcounts(String harmonizedPersonId, String efs, SecurityContext securityContext) {
        List<ContractAndResourceDTO> contractAndResourceDTOS;
        try {
            // Positionnement du context
            SecurityContextHolder.setContext(securityContext);
            // Récupération et filtre des comptes suivant la configuration EFS
            contractAndResourceDTOS = filterAccounts(efs, contractAPIDAO.getAccounts(harmonizedPersonId));
        } catch (DAOException e) {
            LOG.error("Problème lors de l'appel au service getAccounts: ", e);
            final APIError err = APIError.builder()
                            .withHttpCode(HttpStatus.INTERNAL_SERVER_ERROR.value())
                            .withError(e.getMessage())
                            .build();
            throw new APIErrorException(err);
        }

        return CompletableFuture.completedFuture(contractAndResourceDTOS);
    }

感谢您的帮助

0 个答案:

没有答案