[賞書] JUnit in action

看板Soft_Job作者 (只有冰)時間13年前 (2012/12/02 14:26), 編輯推噓2(2012)
留言14則, 3人參與, 最新討論串1/1
@書名:(請盡量寫正確的全名) 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)

12/02 15:20, , 1F
dbunit用途不在那吧,怎麼會拿transaction出來反對?
12/02 15:20, 1F

12/02 15:21, , 2F
不過這本書的確有些東西深入的部份不是講得很好
12/02 15:21, 2F

12/02 15:22, , 3F
不過對於Java programmer來說,當作基本測試入門書還不錯
12/02 15:22, 3F

12/02 19:51, , 4F
DBUnit在測試前,如果DB內要有一些預先資料存在時,很好用
12/02 19:51, 4F

12/02 19:51, , 5F
可以叫SA先用XML把預先要建的資料描述好,PG就能預先讀進來
12/02 19:51, 5F

12/02 19:52, , 6F
我也覺的拿Transactional出來反對不太恰當,用途不同
12/02 19:52, 6F

12/03 07:25, , 7F
那種請sa放進你的測試server不就好了
12/03 07:25, 7F

12/03 07:26, , 8F
dbunit看起來只支援jdbc,要用orm還要繞路很麻煩
12/03 07:26, 8F

12/03 07:29, , 9F
而且兩者效果相同阿,不知為何不能比?
12/03 07:29, 9F

12/04 21:44, , 10F
一個合理的Unit Test環境,你的DB內的資料應該要全部清空
12/04 21:44, 10F

12/04 21:45, , 11F
如果有人亂塞資料進去,導致你的測試結果有問題,那就.....
12/04 21:45, 11F

12/04 21:46, , 12F
如果有使用CI系統,每天有排程去跑你的unit test,沒清空
12/04 21:46, 12F

12/04 21:46, , 13F
大家又亂塞資料,那測試報表不就滿江紅??
12/04 21:46, 13F

12/04 21:47, , 14F
一般來說,在開始跑之前會清空DB,要用的資料重新建
12/04 21:47, 14F
文章代碼(AID): #1GklIQL7 (Soft_Job)