2014-10-09 42 views
2

我已經編寫了使用libcURL從指定網頁檢索信息的代碼。我想爲這段代碼寫一個單元測試。我試圖用cmake做到這一點,但我遇到了各種各樣的問題。是否有另一個框架可以讓我更容易地實現這一點?我應該使用哪個C++單元測試框架來運行涉及libcurl的測試?

下面是關於我一直有與C進行的問題的詳細信息:

以前我是發送一個測試網頁使用tinyweb作爲單元測試的一部分本地主機。然後,我使用多個命令向我的代碼輸入值(這將從本地主機中檢索相關信息)並殺死tinyweb。整體結構與此類似:

CTest with multiple commands

我所遇到的一些問題。一旦啓動tiny.exe的命令被執行,ctest的下一行將不會運行,直到tiny.exe被終止。

我以前嘗試使用批處理文件做類似的事情,但tiny.exe在意外時間被殺害。

回答

0

爲此,我會推薦gtest和gmock。首先,除非您控制網站,否則您不能保證您請求的內容甚至會存在。其次,即使網站確實存在,也不能保證內容將保持不變。

所以1) 在本地主機上建立自己的網站。你可以使用gtest。 2)然後你可以使用gmock來模擬你期望今天的網站內容是什麼。

3)您也可以使用谷歌模擬來模擬DNS失敗,連接問題等,但現在,開始簡單。

+0

我一直在做這方面的一些研究,gtest似乎沒有任何內置的功能來設置本地主機。 你能澄清你的意思嗎?我應該在setUp()中設置本地主機嗎? – 2014-10-13 03:53:43

+0

對不起,我不清楚。通過「使用gtest」,我的意思是你可以使用gtest來測試本地主機上的web服務器,而不是它是一個。至於建立一個網絡服務器,如果你的網絡上有一臺打印機,它可能有一臺。只需通過其IP地址連接到它。您可以先在瀏覽器中測試,看看會發生什麼。 或研究設置一個網絡服務器,以找到最適合你的東西。例如,有許多python最小努力服務器。 – 2014-10-13 16:51:38