2015-01-07 6 views
3

Я пишу простую программу, которая разговаривает с маршрутизатором через telnet и выдает ему некоторые простые команды. Я хочу проверить эти команды, чтобы программа правильно отвечала на серверы и посылала команды в нужные моменты. Однако я не могу понять, как это сделать. Лучшее, что я придумал, это создать небольшой сервер telnet для моих модульных тестов, но это кажется немного чрезмерным, и я надеюсь, что есть более простой способ сделать это.Модульное тестирование pythons telnetlib

У кого-нибудь есть идеи?

ответ

3

Лучшая практика в подобных случаях заключается в том, чтобы высмеять объект сервера. Поскольку вы используете python 3, вы можете просто использовать unittest.mock, чтобы создать издеваемый серверный объект для использования в тестировании. Документы здесь: https://docs.python.org/3/library/unittest.mock.html

+1

Для 2,7 макета доступна как внешняя библиотека: https://pypi.python.org/pypi/mock –

+0

Стыковка сервера telnetlib - это то, что я не рассматривал. Но я не думаю, что я могу проверить это правильно. Я могу проверить, отправляет ли он правильные команды, но я не думаю, что могу отправлять ответы от насмешливого объекта, чтобы проверить, правильно ли отвечает мой код. Или я ошибаюсь? – grimurd

+2

@GrimurD: Макетные рамки позволяют определить возвращаемые значения вызовов методов. В вашей тестовой настройке вам необходимо заранее определить результаты, которые будет отправлять настоящий сервер. –