Re: [問題] Testify Pythoinc的單元測試框架

作者: uranusjr (←這人是超級笨蛋)   2014-12-05 09:45:14
※ 引述《yshihyu (yshihyu)》之銘言:
: http://segmentfault.com/a/1190000000358572
: 最近在研究 unit test 看到有人使用 python 做單元測試 C/C++
: 將 C/C++ 編譯成 so 動態函數庫 , 在使用ctypes 的CDLL 載入so
: 進行單元測試 , 那我看網路上還有提到 Testify 可以取代 python 的 unittest
: 有想個問題想請問一下有使用過的朋友
: 1. Testify 能完成取代 unittest?
這裡說 Testify 是 Go 的那個?
單元測試其實就那樣而已, 要取代都是可以取代
用 Python 的其中一個好處是可以直譯, 測試流程簡單很多
但另一方面可以直接引入 C/C++ 也是有它的好處(往下看)
: 2. 使用 ctypes的 CDLL載入so 做單元測試
: 跟 gtest , cppunit , cunit 相比較之下有什麼缺點 or 限制嗎?
好處上面有講了一個
不用另外建立 test target 可以大幅簡化你的開發流程
只要有動態函式庫一切就簡單了
不用像原生解還要讓測試程式找到 headers/sources 來編譯
在組織專案檔案架構的時候很方便
但 ctypes 引入 C++ 非常麻煩, 而且結果會綁定 compiler
對跨平台 C++ 函式庫而言基本上不可行
另一方面要用 ctypes 就代表你要有個函式庫
如果你的專案成品是 executable, 可能會需要多寫本來不必要的程式
當然要直接測 executable 也是辦得到
但那樣就不是 unit test 而比較像 behavioural test 了
所以這也要看你的專案本身性質而定

Links booklink

Contact Us: admin [ a t ] ucptt.com