2013-05-20 13 views
0

Я пишу вихревое приложение, которое необходимо перенаправить на определенную страницу, и для этого я использую HTTPRedirect ('mynewurl', status = 303). Это работает, поскольку браузер (Safari) перенаправляется на «mynewurl», не спрашивая пользователя. Однако, когда я пытаюсь выполнить единичный тест с использованием nosetests с assertInBody(), я получаю другой результат; assertInBody сообщает, что «этот ресурс можно найти на mynewurl», а не фактическое содержимое «mynewurl». Мой вопрос в том, как я могу заставить nosetests вести себя так же, как Safari, то есть перенаправлять на страницу без отображения сообщения «спросить»?Модульное тестирование Cherrypy HTTPRedirect.

Благодаря Кевин

ответ

0

С модульных тестов питона, вы в основном тестирования сервера. И правильный ответ с сервера - это исключение переадресации, а не сама перенаправленная страница. Я бы порекомендовал вам испытывать это поведение в два этапа:

  1. тест, если первая страница/URL бросками правильно инициализирован (код, URL) HTTPRedirect исключение
  2. тест содержимое второй страницы (на которые перенаправляется)

Но, конечно, если вы настаиваете, вы можете разрешить перенаправление в Try/Except самостоятельно, снова проверяя атрибуты исключений и вызывая метод тестирования на целевом URL-адресе.

+0

Да - фраза «... тестирование сервера» сделала падение пенни. Спасибо, Кевин – KevinHW

Смежные вопросы