В моем последнем проекте Python, использующем Twisted, я пытался хорошо использовать модуль unittest. На высоком уровне я создаю два RESTful API, разработанных специально для общения друг с другом. Для большинства запросов я могу просто использовать DummyRequest и проверить отображаемые значения по ожидаемой константе, и это работает нормально.
Однако у меня есть несколько случаев, когда дизайн требует запроса на одном сервере, который (помимо прочего) затем отправляет запрос на другой сервер, но на самом деле не заботится об ответе. Важно то, что запрос происходит.
Как я уже сказал, я могу отлично протестировать эту функциональность на другой стороне, но я не уверен, как проверить, чтобы данные были отправлены. Мои идеи до сих пор либо
- Настройте фиктивный тестовый сервер, который просто проверяет, был ли выполнен запрос, и проверяет введенные данные - кажется ненадежным и слишком много усилий
- Настройте декоратор для переноса определенных тестов и измените urllib.urlopen, чтобы он сообщал, когда он вызывался, что мы пытались получить, и позволял мне просто возвращать известный результат там.
Я склоняюсь ко второму варианту, так как он кажется более питоническим, но в то же время немного хакерским.
Мысли