Re: [請益] 測試程式問題

看板Soft_Job作者 (肥宅)時間6年前 (2019/07/15 13:23), 編輯推噓2(204)
留言6則, 3人參與, 6年前最新討論串4/6 (看更多)
※ 引述《VFCanisLupus (CanisLupus)》之銘言: : 懂你的意思,假如說redis mongodb 那些並沒有單元測試的模組或套件(我還沒花時間找先 : 假設),那可以用docker的方式進行。 : 那這樣是不是違反了單元測試的F.I.R.S.T 要點的 F與I ?? : 微服務用的是Spring Cloud,照上面前輩這樣子做的話我做單元測試要用docker 架redis r : abbitmq MySQL mongodb (可能服務發現也要啟動起來), 這樣每次測試應該是沒辦法2秒 : 內執行完了。 : 期間只要有任何一部分沒成功啟動或者連線失敗都回造成測試失敗。 : 後寫測試T要點應該早就違反了,先不討論 : -- 我測試新手啦 寫單元測試時 我通常不會 mock DB 在使用 ORM 的狀況下 很容易會執行後與預期不符的狀況 (例如 有綁 AfterFind Hook, 驗 SQL 會是對的 但撈完的結果已經被改過 ) 遇到其他外部功能還是會 mock 掉 但 DB 部分不會 確保真的連到 DB 時 ORM 出來結果與 test 狀況相同 當然這樣算是單元+整合測試的混合了 如果用的框架有提供相關功能會超級方便 像 php laravel 用 sqlite memory driver 實際跑起來也沒多慢 至於只驗證 SQL 語法是否為預期也試過 但是寫起來太累了 最後還是直接開 DB 連比較乾脆 以上 提供參考 --

04/27 00:40,
麻煩這系列的請到政黑或其他地方討論好嗎?這裡是八
04/27 00:40

04/27 00:51,
04/27 00:51

04/27 00:52,
04/27 00:52

04/27 00:57,
04/27 00:57
-- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.222.19.170 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1563168233.A.BDD.html

07/15 14:16, 6年前 , 1F
hi肥宅
07/15 14:16, 1F

07/15 16:40, 6年前 , 2F
hi 推噓自如
07/15 16:40, 2F

07/15 20:06, 6年前 , 3F
你可以驗證 SQL 或 mock object 的行為,但是如果斷言
07/15 20:06, 3F

07/15 20:06, 6年前 , 4F
查詢結果的話,測試會跟資料綁在一起,程式碼不穩定,
07/15 20:06, 4F

07/15 20:06, 6年前 , 5F
資料不見,測試案例會失敗
07/15 20:06, 5F

07/15 22:39, 6年前 , 6F
我是沒遇過程式碼不穩定資料不見 導致測試失敗的情況拉
07/15 22:39, 6F
文章代碼(AID): #1TB0tflT (Soft_Job)
討論串 (同標題文章)
文章代碼(AID): #1TB0tflT (Soft_Job)