@ExtendWith(MockitoExtension.class)
public class EventHandlerTest {
@Mock
private ApplicationEventPublisher applicationEventPublisher;
private EventHandler eventHandler;
@BeforeEach
void setUp() {
releaseEventHandler = new ReleaseEventHandler(applicationEventPublisher);
}
@Test
void doNothingWhenKafkaIsDisabled() {
var event = new EventDTO();
eventHandler.accept(releaseEvent);
verify(applicationEventPublisher, never()).publishEvent(any());
}
В моем коде EventHandler считывает события из темы Kafka и создает новое событие, которое публикуется в шине событий Spring. Я проверяю, что внутреннее событие не создается при определенных обстоятельствах. Макет applicationEventPublisher — это интерфейс из org.springframework.context.ApplicationEventPublisher.
Есть идеи?
ОБНОВЛЕНИЕ:
После некоторых тестов выяснилось, что сбой как-то связан с тем, что ApplicationEventPublisher является функциональным интерфейсом.
@FunctionalInterface
public interface ApplicationEventPublisher {
default void publishEvent(ApplicationEvent event) {
publishEvent((Object) event);
}
void publishEvent(Object event);
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... ver-called