У меня есть приложение Spring Boot и следующий тест JUnit 5, в котором я хочу убедиться, что applicationEventPublisher.publishEvent(any()) никогда не вызывается. Однако тест пройден, даже если метод действительно вызван. И что еще более странно, если я переключусь с times(0) (или Never()) на times(2), произойдет сбой, поскольку метод вызывается только один раз

< /p>
Код: Выделить всё
@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.
Есть идеи?
Подробнее здесь:
https://stackoverflow.com/questions/791 ... ver-called