3
我正在写一个简单的程序,通过telnet与路由器交谈,并发出一些简单的命令。我希望能够测试这些命令,程序能够正确响应服务器输出并在正确的时刻发送命令。但是我找不出一个好办法来做到这一点。 最好我想出的是为我的单元测试创建一个小型的telnet服务器,但这似乎有点过分,我希望有一个更简单的方法来做到这一点。单元测试蟒蛇telnetlib
任何人有任何想法?
我正在写一个简单的程序,通过telnet与路由器交谈,并发出一些简单的命令。我希望能够测试这些命令,程序能够正确响应服务器输出并在正确的时刻发送命令。但是我找不出一个好办法来做到这一点。 最好我想出的是为我的单元测试创建一个小型的telnet服务器,但这似乎有点过分,我希望有一个更简单的方法来做到这一点。单元测试蟒蛇telnetlib
任何人有任何想法?
这种情况下的最佳做法是模拟服务器对象。由于您使用的是python 3,因此您可以简单地使用unittest.mock
创建一个模拟服务器对象以用于测试。 Docs here:https://docs.python.org/3/library/unittest.mock.html
For 2.7 mock is available as external library:https://pypi.python.org/pypi/mock –
嘲笑telnetlib服务器是我没有考虑过的事情。但我不认为我可以这样正确地测试它。我可以测试它是否发送了正确的命令,但我不认为我可以从模拟对象发送回复以查看我的代码是否正确响应。还是我错了? – grimurd
@GrimurD:模拟框架允许您定义方法调用的返回值。在您的测试设置中,您需要预先定义真实服务器发送的结果。 –