Модульные тесты Guava EventBus

У меня есть простой Guava EventBus с одним простым событием и одним простым слушателем. Мой вопрос заключается в том, что такое тестовый шаблон, чтобы проверить, вызывается ли метод слушателя после публикации события.

2 ответа

Решение

Я бы предположил, что проверка того, что EventBus работает должным образом, не является тестом UNIT, который вы должны писать. Одним из преимуществ использования библиотеки (по крайней мере, использования библиотеки, которой вы доверяете) является то, что модульные тесты были написаны поставщиком библиотеки. Поэтому, пожалуйста, не тратьте свое время на то, чтобы убедиться, что люди Google правильно написали EventBus. Чтобы написать модульные тесты вашей системы, EventBus должен быть смоделирован, и поэтому ваш слушатель не будет вызван. Это одно из преимуществ использования шины сообщений, оно позволяет изолировать отдельные проблемы приложения, что упрощает модульное тестирование.

Когда вы будете готовы сделать это, это будет интеграционный тест, который проверяет, что вся система работает вместе. В некоторых случаях это также может быть написано в JUnit, но не думайте, что это модульный тест. Как это сделать, зависит от вашей системы. Вы можете загрузить контекст Spring в тест JUnit или развернуть приложение и запустить тесты для него.

Этот вид тестирования обычно выполняется с использованием фальшивой среды, такой как Mockito. Создайте фиктивный слушатель, зарегистрируйте его в шине событий, запустите событие и убедитесь, что был вызван метод слушателя.

Здесь вы найдете очень простой пример того, как создать макет и как проверить взаимодействие с ним.

Другие вопросы по тегам