看板 Soft_Job 關於我們 聯絡資訊
單元測試是測試程式碼 含資料一同測試不太對 簡單來說 萬一程式碼有錯 資料又不小心混在一起變對的 這個會死的很莫名奇妙 不過理想歸理想啦 按於現實時程 我也常常做整合測試 資料程式碼一起大混測 爆了就當做倒霉 時間給多少做多少事了 ※ 引述《Nonegrame (肥宅)》之銘言: : ※ 引述《VFCanisLupus (CanisLupus)》之銘言: : : 懂你的意思,假如說redis mongodb 那些並沒有單元測試的模組或套件(我還沒花時 : : 假設),那可以用docker的方式進行。 : : 那這樣是不是違反了單元測試的F.I.R.S.T 要點的 F與I ?? : : 微服務用的是Spring Cloud,照上面前輩這樣子做的話我做單元測試要用docker 架r ed : : abbitmq MySQL mongodb (可能服務發現也要啟動起來), 這樣每次測試應該是沒辦 : : 內執行完了。 : : 期間只要有任何一部分沒成功啟動或者連線失敗都回造成測試失敗。 : : 後寫測試T要點應該早就違反了,先不討論 : : -- : 我測試新手啦 寫單元測試時 我通常不會 mock DB : 在使用 ORM 的狀況下 很容易會執行後與預期不符的狀況 : (例如 有綁 AfterFind Hook, 驗 SQL 會是對的 但撈完的結果已經被改過 ) : 遇到其他外部功能還是會 mock 掉 但 DB 部分不會 : 確保真的連到 DB 時 ORM 出來結果與 test 狀況相同 : 當然這樣算是單元+整合測試的混合了 : 如果用的框架有提供相關功能會超級方便 : 像 php laravel 用 sqlite memory driver 實際跑起來也沒多慢 : 至於只驗證 SQL 語法是否為預期也試過 但是寫起來太累了 : 最後還是直接開 DB 連比較乾脆 : 以上 提供參考 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.218.20.86 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1563216024.A.0B7.html