Я пытаюсь выполнить модульное тестирование службы загрузки Sprint (служба A), которая автоматически подключила другую службу (службу B) как
@Autowired
ServiceB serviceB;
Объявление для модульного теста выглядит следующим образом:
@Mock
private UserRepository userRepository;
@Mock
private ServiceA serviceA;
@InjectMocks
@Autowired
private ServiceB serviceB;
private User user;
и произойдет сбой на
Mockito.when(userRepository.save(any(User.class))).thenReturn(user);
User result = serviceA.upsertUser(user);
, где метод serviceA upsertUser()
выглядит так:
user = serviceB.doUpsertUser(user);
Проверка работала нормально, прежде чем я включил объявление ServiceA new
пользователяот
user = new ServiceB(userRepository).doUpsertUser(user);
до @Autowired
user = SeviceB.doUpsertUser(user);
Я не уверен, правильно ли я напутал с созданием насмешек и введением насмешек, как это происходит, когда я захожуServiceA, что ServiceB не был объявлен.