作者deanh (夜想者)
看板Soft_Job
標題Re: [轉錄] 開發人員的測試悖論(The Developer Tes …
時間Tue May 17 07:24:03 2011
: → ppaass:我的做法是不斷地重複使用自己的舊 code...當然舊 code 在 05/16 23:58
: → ppaass:操到穩定之前的那些專案...就是白老鼠啦 XD 好孩子不要學喔 05/16 23:59
: → newjoy:我想問問, 如果測試的資料是來自db(常變動)有什麼好方法 05/17 00:33
: → newjoy:讓這些unit test 不太容易隨時間而失效呢? 05/17 00:33
: → newjoy:mock object的方式很麻煩, 因為要產生一筆測資的時間 05/17 00:33
: → newjoy:可能就比寫整個enhance還久 (資料複雜,db複雜又龐大又常變) 05/17 00:34
你完全弄錯了。
Mock Object在單元測試裡面不是拿來給你這樣用的。
Unit Test測試的目的是你的Code,不是你的Database跟Table。
所以你的資料複雜,db複雜,在哪裡,有幾千個Table都不是重點。
Mock Object更不會有「產生一筆測試資料,可能就比寫整個enhance還要久」
的這種狀況發生。
那表示你在寫整合測試,不是單元測試。
建議你先看看The Art of Unit Test這本書。這本書不難,但是對於很多Unit Test
的觀念有很好的幫助。
: → TonyQ:這個需求真正問題是「db複雜又龐大又常變」 這個... 05/17 00:40
: → newjoy:對阿, 但也不能看著寫出來的unit test 老是作廢... 05/17 00:44
問題不在Unit Test,問題在你寫的不是Unit Test。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.166.227.62
※ 編輯: deanh 來自: 118.166.227.62 (05/17 07:26)
推 lunastorm:我最近也碰到這個問題,的確碰到db這段就是在整合測試了 05/17 10:24
推 Ting1024:我也碰到這問題... 05/17 20:05
→ newjoy:好吧, 那換個問法 有辦法不讓這些整合測試作廢嗎 05/17 22:07
推 hinaeddie:DB 通常是效能測試吧 ? 05/18 00:50