Это проблема
public class ForceService {
private ForceServiceConfig config;
private RestTemplate restTemplate = new RestTemplate(); // HERE
вы создаете новый РЕАЛЬНЫЙ шаблон отдыха. То, что вы, вероятно, хотите, чтобы
- Использовать макет, созданный вами в классе теста на упаковку
- Используйте шаблон реального отдыха и шпионите за ним.
Не знаю, какая у вас структура (1 файл 2 класса), но можно с уверенностью предположить, что это не так, и в любом случае вы можете просто передать RestTemplate в качестве аргумента ctor. Так
@Component
public class ForceService {
private ForceServiceConfig config;
private RestTemplate restTemplate;
public ForceService(ForceServiceConfig config,RestTemplate restTemplate) {
this.restTemplate=restTemplate;
this.config = config;
}
и
@Before
public void setup() {
forceService = new ForceService(config,restTemplate);
}
Теперь, если вы хотите, чтобы RestTemplate был просто заглушкой, которая буквально ничего не делает и возвращает ноль при любых вызовах, если не указано иначе - оставьте это как @Mock
.
Однако, если вы хотите, чтобы он работал нормально и перехватывал только определенные вызовы методов и ответы на заглушки, используйте spy.
@Mock
private RestTemplate restTemplate;
private RestTemplate restTemplate=Mockito.mock(RestTemplate.class)
или
private RestTemplate restTemplate=Mockito.spy(new RestTemplate());