[英]How do you unit test for tcp connection?
我最近有機會為我的項目編寫一個簡單的tcp-client,由於我對tcp / ip的巨大無知,我很難讓它正常工作。
我發現有時候當tcp服務器關閉時連接被拒絕或者有時在調用receive時我可能會遇到異常時,我會遇到奇怪的連接問題。
由於tcp-server是一個黑盒子,我們無法訪問它,我想知道在這種情況下,為此編寫單元測試的最佳方法是什么?
我想要么我應該寫一個tcp-server並讓它返回某些輸入,就像我期望從真實服務器那樣,或者只是模擬與返回理想情況數據相關的函數。
我只是不喜歡這樣的事實:有時我可能會遇到奇怪的連接/接收問題而且我想知道如何正確編寫單元測試,我可以在將來重復使用/擴展以確保之前工作的所有內容仍然有效以防我的代碼或代碼發生變化。
謝謝
你應該有兩種測試:
使用這兩種測試,您應該能夠涵蓋大部分客戶的功能
對於單元測試,我創建一個簡單的套接字服務器(在UT啟動時啟動)只是為了測試客戶端。 如果你簡單而獨立,你將減少運行測試的麻煩。 您也可以使用像ncat這樣的工具來實現這一點。
然而,盡管如此,可能存在可能難以接受的問題。 Keepalive問題,可能是路由等外部問題。 但是如果你使用真正的偵聽套接字(而不是模擬連接),它就是真正的TCP。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.