Лучший способ издеваться над сложными мыльными реакциями - PullRequest
1 голос
/ 02 апреля 2011

У меня есть метод Java, который я хочу провести модульное тестирование, но для него требуется поддельный ответ SOAP, который содержит несколько списков и слоев узлов. Я делаю это с помощью рукописного макета, то есть просто вручную создаю объекты и устанавливаю значения, но, поскольку ответ довольно сложный, его создание вызывает боль. У меня есть пример ответа XML, есть ли простой способ создания макета с использованием XML?

Кроме того, я посмотрел на Mockito, и он отлично смотрится для простых объектов, но, похоже, не подходит для сложных ответов (я не могу использовать его в полной мере).

Стек приложений - Java 1.6, Spring 3 и JAX-WS.

1 Ответ

0 голосов
/ 05 апреля 2011

Я делаю что-то вроде этого

@WebService 
public class MyWebService {

        @Autowired
        private ServiceBean serviceBean;

        public SomeReturedData getData(SomeInputData inputData) {
            return serviceBean.getData(inputData);
        } 
}

Для моего UnitTest у меня есть макет экземпляра «ServiceBean», который я внедряю в @MyWebService, а «MyWebService» развертывается с помощью «in-vm»"транспортировать, как описано здесь

Используя транспорт in-vm, весь XML-маршаллинг / демаршаллинг по-прежнему выполняется инфраструктурой веб-сервиса, и вам нужно иметь дело только с частью Java.

Теперь кто-то может спросить, почему бы не протестировать «ServiceBean» напрямую, почему нужно развертывать WS с использованием транспорта in-vm?Итак, с помощью транспорта in-vm вы можете проверить, что XML-маршалинг / демаршаллинг JAXB работает правильно, а также позволяет протестировать любые перехватывающие обработчики, которые вы, возможно, определили для своего веб-сервиса.

...