Я запускаю модульное тестирование с классом, в котором есть внедренный RestTemplate, и только когда я запускаю тесты, RestTemplate получает значение NULL после использования API, которое я использую.
class ReceitaWsIntegrationImpl implements ReceitaWsIntegration {
private static final String URL_RECEITA_WS_CNPJ
= "https://www.receitaws.com.br/v1/cnpj";
private final RestTemplate restTemplate;
@Override
public void findByCnpj(String cnpj) {
ResponseEntity<CnpjResource> forEntity = restTemplate.getForEntity(
URL_RECEITA_WS_CNPJ.concat("/").concat(cnpj), CnpjResource.class);
}
}
Тестовый класс:
public class ReceitaWsIntegrationImplTest extends TestSupport {
private static final String CNPJ = "27865757000102";
private static final String URL_RECEITA_WS_CNPJ = "https://www.receitaws.com.br/v1/cnpj/";
@Mock
private RestTemplate restTemplate;
private ReceitaWsIntegration receitaWsIntegration;
@Override
public void init() {
receitaWsIntegration = new ReceitaWsIntegrationImpl(restTemplate);
}
@Test
public void should_find_company_by_cnpj() {
receitaWsIntegration.findByCnpj(CNPJ);
InOrder inOrder = inOrder(restTemplate);
inOrder.verify(restTemplate, times(1))
.getForEntity(URL_RECEITA_WS_CNPJ.concat(CNPJ), CnpjResource.class);
inOrder.verifyNoMoreInteractions();
}
}