У меня есть следующий отрицательный тестовый код (он должен завершиться неудачно и вызвать исключение):
@Test
public void testInventoryControllerGetNonExistingRegion() {
final String name = "ME_2";
RegionConfiguration refRegionConfiguration = prepareReferenceObject(name);
assertThatExceptionOfType(EntityDoesNotExistException.class).isThrownBy(() -> {
inventoryRegionController.get(null,name);
});
}
Тест вызывает следующий метод get () и должен вызывать исключение EntityDoesNotExistException.
@ApiOperation(value = "Get a region")
@RequestMapping(value = "regions/{" + REGION + "}", method = RequestMethod.GET)
public RegionConfiguration get(@RequestHeader(value = AUTHORIZATION_HEADER, defaultValue = "Bearer {{JWT}}") String authorization,
@PathVariable(REGION) String regionName) throws EntityDoesNotExistException {
InventoryRegionEntity inventoryRegionEntity = null;
inventoryRegionEntity = RegionInventoryService.find(regionName);
if (null != inventoryRegionEntity)
return RegionConfigurationMapper.mapInventoryRegionEntity(inventoryRegionEntity);
else
throw new EntityDoesNotExistException(InventoryRegionEntity.class, regionName);
}
Метод get () бросает исключает исключение по мере необходимости (я поставил точку останова и проверил)! Но AssertJ показывает мне сообщение об ошибке и не проходит тест.
java.lang.AssertionError:
Expecting:
<org.springframework.web.client.HttpClientErrorException: 404 null>
to be an instance of:
<com.gms.contract.exception.EntityDoesNotExistException>
but was:
<"org.springframework.web.client.HttpClientErrorException: 404 null
Почему так происходит?
Спасибо!
Как отметил ОП, корень проблемы в другом. Проголосовал за закрытие как «неспособный к воспроизведению».
Вам лучше сначала протестировать RegionInventoryService.find (regionName). Чтобы протестировать остальные API, обратитесь к stackoverflow.com/questions/26237714/…