我正在尝试做一些UnitTest,我有一个像这样的方法;
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");
}我正在努力在UnitTest中通过这条线;
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)时;我在balance.setId(Id)行得到一个NPE;
我试着模拟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.
}任何建议都将不胜感激。
发布于 2020-02-25 09:53:59
when(modelMapper.map(isNull(), isNull(), isNull())).thenReturn(new Balance());
when(modelMapper.map(isNull(), isNull())).thenReturn(new ArrayList<Issuer>());https://stackoverflow.com/questions/60386360
复制相似问题