2016-07-22 2 views
0

Я пытаюсь иметь конечные точки REST, чтобы проверить, что моя пользовательская аннотация хорошо справляется с отправкой нужного статуса ошибки.Как получить конечные точки JAXRS в тестовой папке

Как я не хочу, чтобы развернуть их на свои клиентах, естественный выбор должен быть, чтобы мои @Path конечными точек в/Java папки теста и у них обнаружено JAXRS реализаций (в моем случае Джерси), через использование аннотации @ComponentScan.

К сожалению, волшебства не происходит.

Какое правильное заклинание? Есть ли недостающий ингредиент в моем рецепте?

Мой контекст Spring, Hibernate, Tomcat7, Jersey 2.2

+0

Вы хотите протестировать перед развертыванием приложения (используя макетные службы) или после развертывания его в контейнере temp (в основном, с использованием HTTP-клиентов)? – aksappy

+0

Это должно быть частью обычных тестов приложения. Запуск Дженкинса. Уже есть тесты, которые запускают собственный кота вместе с приложением. Таким образом, они будут запускаться отдельно в приложении, тестовая версия (не развернута). –

+0

. Хотите ли вы выполнять тесты на запись и выполнение своих конечных точек REST без запуска Tomcat отдельно? – Justas

ответ

0

Если вы хотите развернуть джерси проект с котом с поддержкой сервлетов 3 Вы должны предоставить класс конфигурации ресурсов для трикотажа

public class MyApplication extends ResourceConfig { 
    public MyApplication() { 
    packages("org.foo.rest;org.bar.rest"); 
    } 
} 

для тестирования вы можете копировать тестовые классы с помощью antrun plugin, используя этот github-url для справки gist.github.com/isopov/4387142

+0

Спасибо shivam, в папке src/java уже есть такой класс. Моя проблема в том, что я хочу, чтобы мои конечные точки были в test/java, чтобы они не были развернуты в построенной войне. На самом деле это моя проблема, мои коты, запущенные на этапе тестирования, запускают приложение, которое создается без классов под тестом/java. Это ошибка 404. спасибо, что открыл глаза. –

+0

для тестирования вы можете скопировать классы тестов с помощью antrun plugin, используя этот URL-адрес github для справки https://gist.github.com/isopov/4387142 – shivam

+0

Это умный @shivam, надежный муравейник для спасения. Представлю идею моим коллегам. Я сделал тестовый класс, аннотированные поля в нем, как я сделал с моими jaxrs queryparams, а затем написал методы, где я вызываю валидатор на этом. Я улавливаю исключение Validation и выкапываю причину проверки правильности состояния. –