Почему не вызывается метод в тестах
Пытаюсь разобраться с mockito. Код сильно упростил, чтобы уменьшить его. Переменная value тут только для
Имеется сервис
@Service
@Getter
@Setter
public class CalService {
private Integer value;
public Integer addAttr(DataAtributes attr) {
return 0;
}
public void changeValue(int val) {
log.info("start changeValue");
setValue(359 + val);
}
}
и еще один класс, который вызывает метод из CalService
@Component
public class GetCalcService {
@Autowired
private CalService calService ;
DataAtributes dataAtributes;
public Integer setCalc() {
dataAtributes = new DataAtributes(1,"test");
Integer val = calService.addAttr(dataAtributes);
calService.changeValue(15);
return val;
}
}
и сам класс тестирования
@SpringBootTest
public class CaclServisTest {
@Mock
CalService calcService;
@InjectMocks
GetCalcService getCalcService ;
@Test
void add() {
DataAtributes dataAtributes = new DataAtributes(1,"test");
when(calcService.addAttr(dataAtributes)).thenReturn(57);
Integer calc = getCalcService.setCalc();
log.info("calc = " + calc);
}
}
Почему при запуске теста и вызове метода getCalcService.setCalc метод calService.changeValue(15) не вызывается?
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
Потому что это не настоящий CalService, a mock.
when(calcService.changeValue(anyInt())).thenCallRealMethod();