Я хочу издеваться над статическим методом в Mockito.
Насколько я знаю, это невозможно, как мне решить проблему? powermock - это не вариант.
Я хочу, чтобы моя аутентификационная переменная не была нулевой.
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
Я прочитал здесь ответ, но не знаю, как поставить этот ответ на код. Может кто-нибудь дать решение?
Как вы уже указали, не возможно издеваться над статическими методами с Mockito, и поскольку вы не хотите использовать Powermock или другие инструменты, вы можете попробовать что-то в своих тестах.
Создать тестовый объект аутентификации
Authentication auth = new...//create instance based on your needs and with required attributes or just mock it if you do not care
Мощный контекст безопасности
SecurityContext context = mock(SecurityContext.class);
Убедитесь, что ваш макет возвращает соответствующую аутентификацию
when(context.getAuthentication()).thenReturn(auth);
Установите контекст безопасности в держатель
SecurityContextHolder.setContext(securityContext);
Теперь каждый вызов SecurityContextHolder.getContext().getAuthentication()
должен возвращать объект аутентификации, созданный на шаге 1.