Я использую пружинный ботинок и мокито. Я автоматически подключил один класс, т.е. BDSRequest, а в классе Junit Test я использовал аннотации @Spy и @InjectMocks. но при вызове служб отдыха в Junits я получаю ответ (bdsCustomerHoldings) как ноль, и утверждение не удается. Как протестировать этот вызов покоя с помощью шаблона mockito.when (restTemplate.postForObject (Constants.BDS_REST_URL, bdsRequest, BDSCustomerHoldings.class)?
class BDSRestCall
{
@Autowired
BDSRequest bdsRequest;
public BDSCustomerHoldings getBDSCustomerInfo(String channelId, String customerId, String cinSuffix,
String countryCode) {
logger.info("prepareRequestForBDS");
Header header = new Header();
header.setMsgId(RandomStringUtils.randomAlphanumeric(20));
header.setChannelId(channelId);
header.setCountryCode(countryCode);
header.setRecordTimeStamp(DateTimeFormatter.ofPattern(Constants.DATE_FORMATTER).format(LocalDateTime.now()));
TxnRequest txnRequest = new TxnRequest();
txnRequest.setIdDoc(customerId);
txnRequest.setIdDocSuffix(cinSuffix);
txnRequest.setIdDoctype("");
txnRequest.setInsurerCode("");
bdsRequest.setHeader(header);
bdsRequest.setTxnRequest(txnRequest);
logger.info("BDS request " + bdsRequest);
BDSCustomerHoldings bdsResponse = restTemplate.postForObject(Constants.BDS_REST_URL, bdsRequest,
BDSCustomerHoldings.class);
logger.info("BDS Response : " + bdsResponse);
return bdsResponse;
}
}
Junit:
@RunWith(MockitoJUnitRunner.class)
class BDSRestCallTest
{
@InjectMocks
private BDSRestCall bdsRestCall;
@Mock
private RestTemplate restTemplate;
@Spy
private BDSRequest bdsRequest;
@Test
public void getBDSCustomerInfoExceptionTest() {
BDSCustomerHoldings bdsCustomerHoldings = bdsRestCall.getBDSCustomerInfo("SG", "S9718016D",
"00", "SG");
System.out.println("response is " + bdsCustomerHoldings);
assertNotNull("response is not null", bdsCustomerHoldings);
}
}