У меня есть проект, который использует Spring MVC. Я пытаюсь написать модульные тесты для сервисного модуля, , который находится в архитектуре проекта. Все классы обслуживания распространяются от суперкласса под названием «BaseService». BaseService как это:как издеваться над суперклассом, который ввел зависимости
public abstract class BaseService {
private static final Logger logger = LoggerFactory.getLogger(BaseService.class);
@Autowired(required = true)
private HttpServletRequest request;
@Autowired
private ReloadableResourceBundleMessageSource messageSource;
/*
* Injecting Mapper
*/
@Resource
private Mapper mapper;
...
public <T extends BaseBVO, S extends BaseVO> T voToBvo (S vo, Class<? extends BaseBVO> bvoClass) {
if (vo != null)
{
return (T) mapper.map(vo , bvoClass);
}
else
{
return null;
}
}
теперь у меня есть метод в служебном модуле, которые используют метод:
"voToBvo (S vo, Class<? extends BaseBVO> bvoClass")
так:
public List<AdcOptionBVO> findOptionByAyantDroitIdAndProduitId (Long idAyantDroit, String idProduit) {
....
list = listVoToBvo(adcList , AdcOptionBVO.class);
logger.info("Returning List of ayrp count= {}" , list.size());
return list;
}
Мой тест выглядит так:
@RunWith(MockitoJUnitRunner.class)
public class AdcServiceImplTest{
@Mock
private Mapper mapper;
@Test
public void shouldSuccessFindOptionByAyantDroitIdandProduitId() {
//Given
List<AdcVO> adcVOList = new ArrayList<>();
adcVOList.add(new AdcVO());
List<AdcOptionBVO> listAdcOptionBVO = new ArrayList<>();
listAdcOptionBVO.add(new AdcOptionBVO());
List<BaseBVO> baseBVOs = new ArrayList<>();
//When
when(repository
.finAdcByOptionOrderByRUAndPrio(anyLong(), anyString())).thenReturn(adcVOList);
when(baseService.listVoToBvo(adcVOList, AdcOptionBVO.class)).thenReturn(baseBVOs);
//Then
assertEquals(adcService
.findOptionByAyantDroitIdAndProduitId(anyLong(), anyString()).size(), adcVOList.size());
}
}
Я получаю java.lang.NullPointerException в BaseService.java при вызове mapper.
@Resource
private Mapper mapper;
переводчик имеет значение null!
Я хочу издеваться метод:
listVoToBvo(adcList , AdcOptionBVO.class);
Пожалуйста, помогите.