У меня есть установить, как:Mockito + Spring + @PostConstruct, ложная ошибка инициализации, почему вызывается @PostConstruct?
Bean класс:
private final Map<String, String> configCache = new HashMap<>();
@PostConstruct
private void fillCache() { (...) configCache.clear();}
TestConfig класс:
@Bean
@Order(Ordered.HIGHEST_PRECEDENCE)
@Primary
public Bean beanMock() {
return Mockito.mock(Bean.class);
}
Test класс: который @Autowires
боб.
Похоже, что Mockito создает макет в TestConfig, он вызывает @PostConstruct, который, по-видимому, вызывается до того, как поле карты инициализируется, поэтому оно выдает исключение.
Мой вопрос:
- Почему Mockito называют @PostConstruct?
- Как отключить @PostConstruct для насмешек?
EDIT: Видимо вызов делается после конкретизации как раз перед весной retrns боба из @Bean методы конфига в
Вы, кажется, правы. Весна!! Но он вызывается после возвращения экземпляра в '@ Configuration'' @ Bean'. Как я могу отключить его? – Whimusical
Не думаю, что вы можете. Если вы не пишете интеграционный тест для нескольких компонентов, вам лучше использовать макеты для модульного тестирования. – john16384