作者iceonly (只有冰)
看板Soft_Job
標題[賞書] JUnit in action
時間Sun Dec 2 14:26:30 2012
@書名:(請盡量寫正確的全名)
JUnit in action
@書本類型:(繁體書、簡體書、翻譯書、英文書)
英文書
@連結:(請至少附上一個參考連結,方便使用者找尋、購買。)
http://www.tenlong.com.tw/items/1935182021?item_id=55506
@入手方式:借閱(圖書館、親友)、購買、交換
借閱
@讀完有任何感想?(請至少附上五十字感想)
本書雖然掛名Junit in action,
實際上專門講解Junit的章節在19章的內容內只佔兩三章。
其他全部都是在講解如何測試XXX,因此把他叫做test in action可能比較符合實際?
內容上大致可以分成下面三種:
1.如何測試XXX:
這點可以看table of contents比較快
http://www.manning.com/tahchiev/excerpt_contents.html
他提到了許多你可能會遇到的程式架構,並且詳細的說明了要如何測試他。
每段都有snippet,因此不用怕像mahout in action一樣啥code都沒給(?)
2.各種要測試XXX時可能會用到的framework:
這也是我覺得他不只是Junit書的原因之一。
在上面的table of contents內
可以看到幾乎每一章特定的主題都會提到一個新的framework,
例如講到DB測試時就介紹了DBUnit,
講到continuous integration就介紹了CruiseControl
而且講述的也算完整,至少有說明他的概念和使用方法,
以maven那個章節來講就有講到
convention over configuration,life cycle,pom,plugin和dependency等等
3.測試的相關概念
本書內容常常提到一些測試上的觀念。
"如果你覺得你的code很難測試,那一定是你寫不好"
"讓測試改善你的程式架構"
"有了測試,refactor時才有信心"
等等,有印像的就這幾句,其他還有很多。
其他像是test-driven developement
或是怎樣寫才好測試的design pattern裡面也有提到。
--
要說缺點的話也不是沒有,
他介紹的framework有點太多了,有些我覺得沒必要,不過多知道總是好的?
另外一個主要的缺點是沒帶到Spring。
以現在java開發來講沒用到Spring是一件很困難的事(至少對我來講是這樣)
而且沒有Spring就不能使用很多方便的東西。
像是他在介紹db時扯了一大堆,
不如直接用Spring然後掛個@Transactional,然後defaultrollback=true
(當然還要設定一些東西就是)
然後你要測試CRUD就直接CRUD就好,反正整個method在執行完後會rollback,
這樣不是省時省力嗎?
@覺得買得有價值嗎? Yes/No
Yes
@如果給一到五顆星,你給幾顆? (*****)
****
因為上面的缺點所以扣一
(註:如果要批評請就事論事,請勿出現人身攻擊。)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.46.134.173
※ 編輯: iceonly 來自: 114.46.134.173 (12/02 14:31)
→ awert:dbunit用途不在那吧,怎麼會拿transaction出來反對? 12/02 15:20
→ awert:不過這本書的確有些東西深入的部份不是講得很好 12/02 15:21
→ awert:不過對於Java programmer來說,當作基本測試入門書還不錯 12/02 15:22
推 swkca:DBUnit在測試前,如果DB內要有一些預先資料存在時,很好用 12/02 19:51
→ swkca:可以叫SA先用XML把預先要建的資料描述好,PG就能預先讀進來 12/02 19:51
→ swkca:我也覺的拿Transactional出來反對不太恰當,用途不同 12/02 19:52
→ iceonly:那種請sa放進你的測試server不就好了 12/03 07:25
→ iceonly:dbunit看起來只支援jdbc,要用orm還要繞路很麻煩 12/03 07:26
→ iceonly:而且兩者效果相同阿,不知為何不能比? 12/03 07:29
推 swkca:一個合理的Unit Test環境,你的DB內的資料應該要全部清空 12/04 21:44
→ swkca:如果有人亂塞資料進去,導致你的測試結果有問題,那就..... 12/04 21:45
→ swkca:如果有使用CI系統,每天有排程去跑你的unit test,沒清空 12/04 21:46
→ swkca:大家又亂塞資料,那測試報表不就滿江紅?? 12/04 21:46
→ swkca:一般來說,在開始跑之前會清空DB,要用的資料重新建 12/04 21:47