jUnit насмешливый ModelMapper - PullRequest
       29

jUnit насмешливый ModelMapper

0 голосов
/ 25 февраля 2020

Я пытаюсь сделать несколько юнит-тестов, и у меня есть такой метод:

public void processInitialBalances(RequestDTO requestDTO) {
    logger.info("At processInitialBalances");

    // Convert from DTO to Entity
    Balance balance = modelMapper.map(requestDTO.getInitialBalances(), Balance.class);

    balance.setId(DUMMY_ID);
    Type listType = new TypeToken<List<Issuer>>() {}.getType();
    List<Issuer> issuer = modelMapper.map(requestDTO.getInitialBalances().getIssuers(), listType, "issuer-list");

    if (!issuer.isEmpty()) {
        issuer.get(ibcConstants.ZERO).setId(DUMMY_ID);

    balance.setIssuer(issuer);

    // Save balance entity and childs (issuers)
    balance = balanceRepository.save(balance);

    logger.info("Leaving processInitialBalances");
}

Я изо всех сил пытаюсь пройти эту строку в юнит-тестах;

    Balance balance = modelMapper.map(requestDTO.getInitialBalances(), Balance.class);

    balance.setId(DUMMY_ID);
    Type listType = new TypeToken<List<Issuer>>() {}.getType();
    List<Issuer> issuer = modelMapper.map(requestDTO.getInitialBalances().getIssuers(), listType, "issuer-list");

Потому что, когда я запускаю classUnderTest.processInitialBalances (dto); Я получаю NPE в строке balance.setId (id);

Я пытался смоделировать modelMapper, но я получил PotentiallyStubbingProblem, вот мой тест.

    @Test
    public void testBalanceCreated() throws ServiceException {
        RequestDTO requestDTO = new RequestDTO();
        BalanceDTO balanceDTO = new BalanceDTO();
        List<IssuerDTO> issuers = new ArrayList<>();
        IssuerDTO issuer = new IssuerDTO();

        issuer.setIssuerName("GBM");
        issuer.setSharePrice(10f);
        issuer.setTotalShares(100);
        issuers.add(issuer);

        balanceDTO.setCash(100f);
        balanceDTO.setIssuers(issuers);

        requestDTO.setInitialBalances(balanceDTO);

        when(modelMapper.map(null, null, null)).thenReturn(new Balance());
        when(modelMapper.map(null, null)).thenReturn(new ArrayList<Issuer>());

        cut.processInitialBalances(requestDTO);

        // Assert entities and repository call.
    }

Любой совет будет оцените.

1 Ответ

0 голосов
/ 25 февраля 2020
when(modelMapper.map(isNull(), isNull(), isNull())).thenReturn(new Balance());
when(modelMapper.map(isNull(), isNull())).thenReturn(new ArrayList<Issuer>());
...