В этой версии @MockBean и @SpyBean устарели и заменены на @ MockitoBean и @MockitoSpyBean
Я внес изменения в свой класс, аннотированные @TestConfiguration, и с тех пор мои SpringBootTests завершается сбоем на этапе инициализации.
Вот как выглядит мой класс конфигурации:
Код: Выделить всё
@TestConfiguration
public class IntegrationTestConfig {
@MockitoSpyBean
private LanguageRepository languageRepository;
@PostConstruct
void setUp() {
when(languageRepository.findAllCodes()).thenReturn(List.of("fr", "en"));
}
}
Код: Выделить всё
@Retention(RetentionPolicy.RUNTIME)
@SpringBootTest(classes = {IntegrationTestConfig.class, SpringSecurityTestConfig.class})
@ActiveProfiles("test")
@Sql(scripts = "classpath:sql/clearTables.sql", executionPhase = ExecutionPhase.AFTER_TEST_METHOD)
@AutoConfigureMockMvc
public @interface IntegrationTest {
}
Код: Выделить всё
java.lang.NullPointerException: Cannot invoke "package.whatever.LanguageRepository.findAllCodes()" because "this.languageRepository" is null
Код: Выделить всё
@SpyBean). Со старыми аннотациями все работает нормально.
[b]Мои вопросы:[/b]
[*]Что я такое здесь отсутствует?
[*]Как я могу восстановить то же поведение, что и раньше, желательно, не полагаясь на наследование базового тестового класса с помощью настройки @BeforeEach
Подробнее здесь: https://stackoverflow.com/questions/792 ... ostconstru