Самый простой способ отправить форму в ServletUnit, используя что-то вроде WebRequest в HttpUnit - PullRequest
0 голосов
/ 25 мая 2011

Я хотел бы программно создать форму с полями и т. Д., Но я не смог найти общедоступную фабрику и т. Д. Для создания WebForm (класса). Как только это будет сделано, я бы хотел отправить форму и сделать так, чтобы мой сервлет что-то сделал с формой.

Один из подходов, которые я заметил в тестах, - это создание PseudoServer, который представляет собой простой сервер сокетов. Затем тесты в конечном итоге делают запрос к некоторому URL, который отвечает произвольным html, который включает форму. Проблема в том, что я не могу зарегистрировать свой собственный сервлет, чтобы что-то делать.

Таким образом, я застрял между желанием формы, но не смог ее создать, если я хочу объединить сервлет блок.

  • Есть ли способ отправки форм сервлету внутри модуля сервлета?
  • Есть ли способ объединить части httpunit с отправкой формы с модулем сервлета?

Наверное, не потому, что он (httpunit) хочет отправить форму через сокет, а servletunit вообще не использует сокеты.

В соответствии с предложением Андрея и моими прошлыми экспериментами я пытался вызвать многочисленные методы WebRequest, чтобы попытаться передать материал, который существует в форме, отправляемой на сервер.

  • selectFile () - чтобы выбрать файл для загрузки
  • setHeaderField () для установки типа содержимого / кодировки / кодировки.

1 Ответ

1 голос
/ 25 мая 2011

Вы можете использовать PostMethodWebRequest , чтобы отправить запрос POST на любой HTTP-URL:

WebRequest request = new PostMethodWebRequest(serverUrl);

А затем просто установить параметры формы непосредственно в объекте запроса:

request.setParameter('name', 'user1');
request.setParameter('password', '123456');
...