Не совсем ответ на ваш вопрос, но я все равно должен его задать. Я уверен, что вы упростили пример, но я не вижу особой ценности в написании модульного теста для этого. Кажется, что вы тестируете фреймворк больше, чем какая-либо логика реального приложения. Если ваш запрос get вызывает некоторые правила для возврата каких-либо объектов модели, просто оберните этот код в объект и используйте DI для его внедрения.
Например:
@GET
@Produces("application/json")
@Path("/movies")
public List<Movie> catalog() {
return this.rentalManager.findAll();
}
Теперь вы можете просто использовать скучный старый тест JUnit и не заниматься ни одной из проблем фреймворка. Проверяет ли наличие в вашем классе правильные аннотации? Не совсем, но я подозреваю, что это что-то, что будет поймано при приемочном тестировании и не сильно изменится после кодирования.
Конечно, если вас это действительно беспокоит, вы можете написать какой-нибудь тест вроде:
@Test
public void catalogSupportsGetRequests() {
verifyMethodHasAnnotation(MyResource.class, "catalog", "GET");
}
@Test
public void catalogProducesJson() {
verifyMethodHasAnnotation(MyResource.class, "catalog", "Produces", "application/json");
}
// You get the idea.
Надеюсь, это поможет!
Brandon