В вашем тесте 2 ошибки
Ошибка 1: Смешивание аннотаций JUnit4 и JUnit5
org.junit.jupiter.api.Test
от JUnit 5 org.junit.Before
из JUnit 4
Таким образом, ваш метод @Before никогда не выполняется. Используйте org.junit.jupiter.api.BeforeEach
вместо
Ошибка 2: Использование аннотаций Spring без расширения Spring
@Autowired
происходит из DI-среды Spring. Он будет введен, только если вы используете Spring Injection / runner
Если вы хотите MockitoAnnotations.initMocks(this);
, чтобы построить тестируемый объект и внедрить все макеты, используйте @InjectMocks
Ошибка 3: Запутанный способ инициализации макетов
Существует 2 способа инициализации макетов:
Вручную:
this.dgUserAuthorities = mock(DgUserAuthorities.class);
this.controller = new CentralController(this.dgUserAuthorities);
Использование аннотаций
@InjectMocks
private CentralController controller;
@Mock
DgUserAuthorities dgUserAuthorities;
Аннотации требуют звонка на MockitoAnnotations.initMocks(this)
или с использованием расширения Mockito: @ExtendWith(MockitoExtension.class)
Я настоятельно не рекомендую вам смешивать 2 подхода. Кроме того, если вы используете аннотации, не инициализируйте поля самостоятельно.