2015-01-07 161 views
3

我正在寫一個簡單的程序,通過telnet與路由器交談,併發出一些簡單的命令。我希望能夠測試這些命令,程序能夠正確響應服務器輸出並在正確的時刻發送命令。但是我找不出一個好辦法來做到這一點。 最好我想出的是爲我的單元測試創​​建一個小型的telnet服務器,但這似乎有點過分,我希望有一個更簡單的方法來做到這一點。單元測試蟒蛇telnetlib

任何人有任何想法?

回答

3

這種情況下的最佳做法是模擬服務器對象。由於您使用的是python 3,因此您可以簡單地使用unittest.mock創建一個模擬服務器對象以用於測試。 Docs here:https://docs.python.org/3/library/unittest.mock.html

+1

For 2.7 mock is available as external library:https://pypi.python.org/pypi/mock –

+0

嘲笑telnetlib服務器是我沒有考慮過的事情。但我不認爲我可以這樣正確地測試它。我可以測試它是否發送了正確的命令,但我不認爲我可以從模擬對象發送回覆以查看我的代碼是否正確響應。還是我錯了? – grimurd

+2

@GrimurD:模擬框架允許您定義方法調用的返回值。在您的測試設置中,您需要預先定義真實服務器發送的結果。 –