После изучения источника Jersey Test Framework я обнаружил элегантный способ внедрения зависимостей в мои классы ресурсов RESTful.
В моем тестовом классе (который расширяет JerseyTest) я добавил только реализацию метода configure ():
public AppDescriptor configure() {
return new WebAppDescriptor.Builder()
.contextListenerClass(ContextLoaderListener.class)
.contextParam("contextConfigLocation", "classpath:applicationContext.xml")
.initParam("com.sun.jersey.config.property.packages", "[resource package]")
.build();
}
Это фактически обеспечивает пользовательский WebAppDescriptor
вместо того, чтобы полагаться на веб-контейнер Grizzly Jersey Test для его создания.
При этом будет использоваться файл applicationContext.xml в пути к классам, который можно настроить по-разному для запуска тестов JUnit. По сути, у меня есть два разных файла applicationContext.xml: один для моих тестов JUnit, а другой для рабочего кода.
Приложение applicationContext.xml теста настроит объект зависимости доступа к данным по-разному.