[請益] 如何實現單元測試多於整合測試?
將單元測試實作於專案時,發現絕大部分API都是針對資料庫做CRUD,這部分程式透過inmemory 寫了整合測試,越寫越覺得不對勁,心想單元測試數量不是應該要最多? 網路文章、影片或實體書籍大多也在探討如何寫單元測試,整合測試資源相對少,在想是不是我哪裡做錯了,懇請各位大神指教。
--
以傳統三層式架構來說我多半是測中間的商業邏輯層
看情況,只要整合測試寫/改起來不累,單元測試就沒那麼重要
數量差距不用太在意,只要好寫又有效,多一點無妨
實務上,單元測試不是看數量多少,是看覆蓋率。整合測試不
是工程師在開發環境寫單元測試,而是在測試環境,QA寫。
簡單說,從來不追求數量。追求覆蓋。
小公司不會有賠錢部門QA的
不用在意數量多寡 測試數量會根據你做的架構或軟體類型變
化是很正常的一件事 像你說你API都CRUD 那當然單元測試就
都通常在測處理資料的商業邏輯 但要是那些邏輯也沒啥好測
就甭測了 因為本來就沒啥好測 但如果你是做個圖像引擎之類
的東西 單元測試就會變得比較多 因為運算也比較多 合理吧
當然是直接整合測試就好 專案失控才要整天搞單元測試
而且ide可以單步除錯 真的要測也不用annotation的爛
方式
一勞永逸讓專案可控才是最佳品質保證
你寫db/cache用DI寫 可以很方便的 mock 這些依賴
但是也有不少做法是在測試時 用你的 db entity 真實建
一個db 在緩存中, 這樣測試有一個優點 就是確保你entity
是正確的,也可以符合你實際連線的狀況 缺點就是麻煩
上面有說CRUD邏輯簡單就不用單元測試,這是很嚴重的錯誤
單元測試為何講求覆蓋率,就是要確保可靠度是有保障的
單元邏輯有沒有正確,只是其中之一 不是全部
CRUD是很制式化的技術應用 想方設法使程式碼簡潔且邏
輯圓融 做到這一步即便你不寫測試多半應用不會有錯
見到更多的是程式碼亂七八糟寫測試想hold住質量的...
當然已經是屎山的就冏了
別人的產品可以不必搞到這樣 但有某種程度方便很多
16
[心得] 用pycharm 重構 python 單元測試最近這陣子在客戶那邊有機會開始碰到一些 python 的程式, 我過去的經驗都是靜態語言居多,一直想碰一下 python 或 Ruby, 這次倒是個不錯的契機,剛好可以練手一下。 越寫倒是越愛上 python 了。 我對開發工具、開發方式比較熟悉一點,對 python 語言特性不熟,15
[心得] Android TDD 測試驅動開發大家好,我在去年寫了Android TDD 測試驅動開發的系列文章 最近把這系列改編成書出版了,更加了許多章節,已經在天瓏書店上預購。 「Android TDD 測試驅動開發:從 UnitTest、TDD 到 DevOps 實踐」10
[情報] Roy Osherove推出免費的TDD課程知名[單元測試的藝術]書的作者 Roy Osherove, 將他大量的TDD/測試相關課程改成免費, 連結: 感謝他的佛心推廣~~~~3
[轉讓] 單元測試的藝術(線上課程)因故無法如期上課 課程名稱:針對遺留代碼加入單元測試的藝術 課程講師:Joey Chen(91) 轉讓費用:原價13000 上課時間:2022/3/27(日)整天3
Re: [爆卦] 反核四方唯一戰力逐字稿聽起來最大的癥結點就是安檢測試跟運轉測試,安檢測試如同單元測試,測試有沒有符合一切的功能運作的規格,這部分肯定是沒問題的,問題出在運轉測試,這部分如同壓力測試,一些關鍵的零件並沒得到確切的保證,加上先天設計又不良,日本車塞美國引擎上美國螺絲,所以運轉報告也不是蔡政府的原能會拒審,就算叫馬政府的原能會來審也不敢給過,嗯,所以放飯了? ----- Sent from JPTT on my Google Pixel 2. --