Estou escrevendo um serviço resto inicialização primavera em que estou tentando unidade testar uma classe anotada com @Service. Esta classe de serviço internamente usa outra classe de serviço. Aqui está o código:
@Service
public class TieredClaimServiceImpl implements TieredClaimService {
//this is the second service used within
// commented out setter injection and used constructor injection
// @Autowired
private DiscountTierService discountTierService;
@Autowired
public TieredClaimServiceImpl(MerchRepository merchRepository,SalesRepository
salesRepository,DiscountTierService discountTierService) {
this.merchRepository = merchRepository;
this.salesRepository = salesRepository;
this.discountTierService = discountTierService;
}
Aqui está o método dentro da classe que eu precisaria para teste de unidade:
@Override
public List <TieredClaimDto> calculateClaim(ClaimRequestDto claimRequestDto,String xAppCorelationId) throws SystemException {
/** get the discount tier config data - this is where we are using the other service **/
List<DiscountTierDto> discountTierList = discountTierService.get();
Gostaria de zombar do 'DiscountTierService' usado dentro 'TieredClaimServiceImpl'
Na minha classe de teste de unidade Tentei zombar da chamada que está sendo feito para este serviço:
DiscountTierService discountTierService = mock(DiscountTierService.class);
OU
DiscountTierService discountTierService = spy(new DiscountTierServiceImpl());
Nenhuma delas funcionou.
Apesar de não ser diretamente relacionados eu tinha uma pergunta relacionada com todo este solutioning aqui