Mockito не может проверить, что метод никогда не вызываетсяJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Mockito не может проверить, что метод никогда не вызывается

Сообщение Anonymous »

У меня есть приложение 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.
Есть идеи?
ОБНОВЛЕНИЕ:
После некоторых тестов выяснилось, что сбой как-то связан с тем, что ApplicationEventPublisher является функциональным интерфейсом.
@FunctionalInterface
public interface ApplicationEventPublisher {

default void publishEvent(ApplicationEvent event) {
publishEvent((Object) event);
}

void publishEvent(Object event);

}


Подробнее здесь: https://stackoverflow.com/questions/791 ... ver-called
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»