Soft_Job 板


LINE

先確認一下,不知道你們是不是用一些潮潮 der 框架, 然後那框架的官方文件給的範例是看起來簡潔漂亮清楚的一兩行 code, (例如 service 裡一個查詢 > return 結果) 然後你們把範例 copy 過來改,直接往裡面塞邏輯? 如果是這樣,可能需要先做的是把 CRUD 分割出去, 把所有 "用某些參數組一些查詢取得查詢結果" 這樣的東西包出去變成方法呼叫。 這樣做之後,應該就能很容易的 mock 掉 CRUD 的部份 然後我覺得更好的情況會是把商業邏輯也包出去, 這樣就可以從 service 層再切出更核心更通用的 core 部份, core 的部份不依賴於任何框架或外部環境, 只包含 "接收資料處理邏輯回傳資料" 這樣做之後,應該就能很單純的直接給資料測 core 的部份,無需任何 mock (或者說 mock 就是 testing data 本身) 然後哪一種測試要多是依你們的需要而定, 通常整合測試可以 "花較少的時間力氣測較大的範圍", 如果需要的是做上 production 之前的防護網會比較適合 單元測試足夠則可以 "較明確的指出目前有問題與確定正常的部份" 如果需要的是遇到問題時能快速的排查與修復就多加一些 ※ 引述《a804372004 (忽冷忽熱摸不著)》之銘言: : 將單元測試實作於專案時,發現絕大部分API都是針對資料庫做CRUD,這部分程式透過in : memory 寫了整合測試,越寫越覺得不對勁,心想單元測試數量不是應該要最多? 網路文 : 章、影片或實體書籍大多也在探討如何寫單元測試,整合測試資源相對少,在想是不是我 : 哪裡做錯了,懇請各位大神指教。 --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.175.248 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Soft_Job/M.1668932484.A.DB0.html
1F:推 a804372004: 在Service層透過Repository對資料庫做CRUD,商業邏輯 11/23 16:04
2F:→ a804372004: 的部份較少,也許單元測試的需求就沒這麼多? 11/23 16:07
那的確是,假如都是單純的 API 讀資料庫回傳結果這類操作, 基本上也沒什麼東西能拿去做單元測試 單元測試我覺得有幾類比較需要 : 1. 底層核心,偏 utils 的,例如 距離計算,日期的格式化或 parse 等 它們可能被廣泛的用在許多地方,比較不能出錯 2. 本身內部邏輯複雜的,例如依多項參數計算費用或生成合約 它們如果出錯 debug 難度會較高, 有單元測試可協助快速縮小可能出問題的範圍 3. 被用在很多步驟的一組流程中的,例如要打多個 API 的一組流程, 如共享交通的借還車,這類型的當有問題但整合測試測不出來時 (例如打 API 的順序不對,整合測試也沒測該順序的 case) 若有單元測試則可快速確認是不是底層實作的問題, 如果確認不是就能很快的調整排查的方向
3F:→ peter9s3b: 越oo越容易寫unittest,先寫unittest,元件抽象比較高 11/29 07:00
不那麼直接 有 "好的邊界與流程" 會好測試,而 OO 是實現的手法之一, 不過不是唯一的方式,也不保證使用 OO 必然能實現 "好的邊界與流程" ※ 編輯: lovdkkkk (111.241.166.152 臺灣), 12/01/2022 12:21:42







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP