Ответ 1
TestExecutionListeners
предоставляют различные типы функциональных возможностей для тестов, запущенных в Spring TestContext Framework.
Если вас интересует то, что делает конкретный слушатель, лучший способ узнать - прочитать Javadoc для соответствующего класса. Кроме того, в главе Тестирование справочного руководства Spring подробно рассказывается о том, как использовать каждого из слушателей и что они делают.
В вашем конкретном случае, если вы не используете @DirtiesContext
, вам не нужно использовать DirtiesContextTestExecutionListener
. Что касается DependencyInjectionTestExecutionListener
и TransactionalTestExecutionListener
, вам, скорее всего, понадобится, чтобы они ввели зависимости в ваш тест (например, через @Autowired
, @Inject
, @Resource
и т.д.) И для транзакционных тестов (т.е. Тесты, аннотированные с помощью @Transactional
).
Обратите внимание также, что вышеупомянутые слушатели включены по умолчанию. Поэтому, если вы используете Spring TestContext Framework без каких-либо пользовательских прослушивателей, таких как DbUnit, вы просто не понимали, что слушатели существуют. Раздел Конфигурация TestExecutionListener в справочном руководстве также должен помочь прояснить ситуацию. Обратите внимание, однако, что некоторые функции, такие как слияние и автоматическое обнаружение прослушивателей по умолчанию, доступны только в Spring Framework 4.1 +.
Привет,
Сэм (автор Spring TestContext Framework)