У меня следующий класс обслуживания, который я хочу протестировать
@Service
public class MasterService {
@Inject
private ServiceOne serviceOne;
@Autowired
private ServiceTwo serviceTwo;
@Inject
private ServiceThree serviceThree;
@VisibleForTesting
void execute() {
if (serviceThree.isFlag()) {
....
}
}
Я тестирую метод execute()
. Я хочу высмеять serviceThree.isFlag()
, чтобы вернуть истину. Ниже приводится мой тест.
public class MasterServiceIT{
@Inject
private MasterService masterService;
@Inject
private ServiceThree serviceThree;
@Test
public void testMasterService() {
when(serviceThree.isFlag()).thenReturn(true); <---- this never works
masterService.execute();
}
}
Однако он никогда не возвращает истину. Замечания? Я хотел использовать @InjectMocks
Тогда могу ли я внедрить только эту службу, над которой я издевался? или мне нужно издеваться над каждой службой, если я использую @InjectMocks