JUNIT IN ACTION中文版

《JUNITINACTION中文版》是2004年電子工業出版社出版的圖書,作者是VincentMassol,TedHusted。

內容簡介

本書主要介紹了在java軟體開發中使用junit進行測試的原則、技巧與實踐,深入闡述如何編寫自動測試,把一段代碼隔離開來測試有什麼好處,如何判斷何時需要進行整合測試,並對如何測試完整的j2ee套用進行了極具價值的討論。本書富含開發實踐當中的真實案例,以專家手筆討論了實踐中的測試技術,主要內容包括:用mock objects進行隔離測試;用cactus進行容器內測試;用ant和maven進行自動構建;在eclipse內進行測試;對java應用程式、 filter、servlet、ejb、jsp、資料庫應用程式、taglib等進行單元測試。

本書適合於在java平台下進行各類軟體開發的開發人員、測試人員、單元測試研習者以及編程愛好者閱讀和學習,具有極高的參考價值。

熟知業界動向的開發者正在轉向一種新的測試策略--單元測試。在單元測試中,代碼和測試互相交織。這種強有力的方法會讓軟體具有更好的設計、更少的缺陷、更快的交付周期。單元測試以"能激勵開發者的士氣"聞名--每當開發者往前邁進一步,他們的信心也隨之增加,因為他們知道以前邁出的每一步都踏踏實實、正確無誤。

junit in action 這本書能讓你快速開始這一新的編程方式。在編程時你無可避免地會常常犯錯,你會希望儘早發現這些錯誤。通過(經常)使用單元測試,你能做到這一點。本書充滿了現實世界中的真實案例,以專家手筆討論了實踐中的測試技術。本書能告訴你如何編寫自動測試,把一段代碼隔離開來測試有什麼好處,如何判斷何時需要進行整合測試。本書還就如何測試完整的j2ee套用進行了極具價值且獨一無二的討論。

目錄

目錄

譯序 iii

前言 xiii

致謝 xv

關於本書 xvii

關於作者 xxi

關於書名 xxii

關於封面 xxiii

第1部分 junit精粹 1

1 junit起步 3

1.1 證實它能運作 4

1.2 從頭開始 6

1.3 理解單元測試框架 10

1.4 安裝junit 11

1.5 用junit測試 13

1.6 小結 16

2 探索junit 17

2.1 探索junit核心 18

2.2 用test runner來運行測試 20

2.2.1 選擇test runner 20

.2.2.2 定義你自己的test runner 21

2.3 用testsuite來組合測試 21

2.3.1 運行自動suite 22

2.3.2 編寫你自己的test suite 23

2.4 用testresult來收集參數 25

2.5 用testlistener來觀察結果 27

2.6 用testcase來工作 28

2.6.1 用fixture來管理資源 29

2.6.2 創建單元測試方法 30

2.7 創建testcalculator全過程 32

2.7.1 創建testsuite 33

2.7.2 創建testresult 35

2.7.3 執行測試方法 36

2.7.4 複習完整junit生命周期 37

2.8 小結 38

3 junit實例 39

3.1 引入controller組件 40

3.1.1 設計接口 41

3.1.2 實現基類 43

3.2 讓我們來測試吧 45

3.2.1 測試defaultcontroller 46

3.2.2 增加處理器 46

3.2.3 處理請求 50

3.2.4 改進testprocessrequest 54

3.3 測試異常處理 55

3.3.1 模擬異常條件 56

3.3.2 測試異常 60

3.4 建立測試項目 62

3.5 小結 64

4 探索軟體測試 65

4.1 單元測試的必要性 66

4.1.1 帶來更大的測試範圍 67

4.1.2 帶來團隊協作的可能 67

4.1.3 防止衰退,減少調試 67

4.1.4 使得重構可行 68

4.1.5 改進實現設計 69

4.1.6 當作開發者文檔來用 69

4.1.7 非常有趣 70

4.2 不同種類的測試 71

4.2.1 軟體測試的4種類型 71

4.2.2 單元測試的3種類型 75

4.3 判斷測試質量 77

4.3.1 衡量測試覆蓋面 78

4.3.2 產生測試覆蓋情況報告 79

4.3.3 測試互動 81

4.4 測試驅動開發 81

4.4.1 調整周期 81

4.4.2 tdd兩步走 83

4.5 在開發周期中的測試 84

4.6 小結 87

5 junit自動化 88

5.1 生命中的一天 89

5.2 從ant中執行測試 90

5.2.1 不可缺少的ant 91

5.2.2 ant目標、項目、屬性以及任務 92

5.2.3 javac任務 94

5.2.4 junit任務 96

5.2.5 讓ant來執行任務 97

5.2.6 用junitreport列印好看的報告 98

5.2.7 自動找出要運行的測試 100

5.3 從maven運行測試 102

5.3.1 maven,目標尋找者 102

5.3.2 為項目配置maven 104

5.3.3 使用maven來執行junit測試 109

5.3.4 用maven處理要依賴的jar 109

5.4 從eclipse中運行測試 112

5.4.1 創建一個eclipse項目 112

5.4.2 在eclipse中運行junit測試 114

5.5 小結 116

第2部分 測試策略 117

6 用stub進行粗粒度測試 119

6.1 stub簡介 120

6.2 一個http連線的例子 121

6.2.1 選擇一個替換方案 124

6.2.2 用jetty作為嵌入式伺服器 125

6.3 替換web伺服器資源 126

6.3.1 建立第一個stub測試 126

6.3.2 測試失敗情況 132

6.3.3 回顧第一個stub測試 133

6.4 替換連線 134

6.4.1 創建自定義url協定處理器 134

6.4.2 創建jdk的httpurlconnection stub 136

6.4.3 運行測試 137

6.5 總結 138

7 用mock objects 進行孤立測試 139

7.1 mock objects簡介 140

7.2 體驗mock objects:一個簡單例子 141

7.3 把mock objects用作重構手法 146

7.3.1 方便的重構 147

7.3.2 允許更靈活的代碼 148

7.4 實踐http連線示例程式 150

7.4.1 定義mock object 150

7.4.2 測試示例方法 151

7.4.3 嘗試1:簡單的方法重構技法 152

7.4.4 嘗試2:使用類工廠進行重構 155

7.5 把mock objects用作特洛伊木馬 159

7.6 決定何時使用mock objects 163

7.7 小結 164

8 使用cactus進行容器內測試 165

8.1 對組件進行單元測試的問題 166

8.2 用mock objects測試組件 167

8.2.1 用easymock來測試servlet例子 168

8.2.2 用mock objects測試組件的優勢與不足 170

8.3 什麼是集成單元測試 172

8.4 介紹cactus 173

8.5 用cactus測試組件 173

8.5.1 運行cactus測試 174

8.5.2 用cactus/jetty集成來執行測試 174

8.5.3 容器內測試的缺點 178

8.6 cactus如何工作 179

8.6.1 在客戶端和伺服器端的步驟 180

8.6.2 一步步執行測試 180

8.7 小結 182

第3部分 測試組件 185

9 對servlet和filter 進行單元測試 187

9.1 介紹管理應用程式 188

9.2 用cactus編寫 servlet 測試 189

9.2.1 設計第一個測試 190

9.2.2 使用 maven 來運行cactus測試 192

9.2.3 完成 cactus servlet 測試 198

9.3 用mock objects測試 servlet 204

9.3.1 使用 dynamocks 和 dynabeans寫一個測試 205

9.3.2 完成 dynamock 測試 206

9.4 用cactus寫filter測試 208

9.4.1 用select查詢測試filter 209

9.4.2 對其它的查詢類型測試filter 210

9.4.3 用maven運行cactus filter測試 212

9.5 何時使用cactus,何時使用mock objects 213

9.6 小結 214

10 對jsp和taglib 進行單元測試 215

10.1 回顧管理套用軟體 216

10.2 什麼是jsp單元測試 217

10.3 單獨使用cactus 對jsp進行單元測試 217

10.3.1 利用sql結果數據執行jsp 218

10.3.2 編寫cactus測試 219

10.3.3 使用maven執行cactus jsp的測試程式 222

10.4 使用 cactus 對 taglib 進行單元測試 224

10.4.1 定義自定義標記 225

10.4.2 測試自定義標記 227

10.4.3 對帶 body 的標記進行單元測試 228

10.4.4 對協作標記進行單元測試 233

10.5 用mock objects對taglib進行單元測試 233

10.5.1 mockmaker 及其 eclipse 外掛程式的安裝 234

10.5.2 用 mockmaker 從類中產生mock objects 234

10.6 何時使用mock objects,何時使用 cactus 237

10.7 小結 237

11 對資料庫應用程式進行單元測試 239

11.1 對資料庫進行單元測試的介紹 240

11.2 隔離開資料庫測試業務邏輯 242

11.2.1 實現資料庫訪問層的接口 243

11.2.2 建立一個模擬資料庫接口層 244

11.2.3 模擬資料庫接口層 246

11.3 隔離開資料庫測試持久性代碼 247

11.3.1 測試execute方法 248

11.3.2 用預期驗證狀態 256

11.4 資料庫集成單元測試的編寫 260

11.4.1 滿足資料庫集成測試的要求 260

11.4.2 預設資料庫數據 261

11.5 用ant 運行cactus測試 265

11.5.1 項目結構的回顧 265

11.5.2 cactus/ant 集成模組介紹 266

11.5.3 一步步建立ant build 檔案 267

11.5.4 執行cactus測試 274

11.6 改進構建性能 275

11.6.1 分解出唯讀數據 275

11.6.2 按功能將測試分組 277

11.6.3 使用駐留記憶體資料庫 278

11.7 資料庫整體單元測試策略 278

11.7.1 選擇一種方法 278

11.7.2 套用持續集成 279

11.8 小結 280

12 對ejb進行單元測試 281

12.1 定義一個簡單的ejb應用程式 282

12.2 使用fa?ade策略 283

12.3 使用mock objects對jndi代碼進行單元測試 284

12.4 對session bean進行單元測試 285

12.4.1 使用工廠方法策略 289

12.4.2 使用工廠類策略 293

12.4.3 使用mock jndi實現策略 297

12.5 使用mock objects測試message-driven bean 307

12.6 使用mock objects測試entity bean 310

12.7 選擇正確的mock objects策略 312

12.8 使用集成單元測試 313

12.9 使用junit和遠程調用 314

12.9.1 直接使用junit的要求 315

12.9.2 把petstore應用程式打包進ear檔案 315

12.9.3 自動部署和執行測試 319

12.9.4 為petstoreejb編寫遠程的junit測試 325

12.9.5 修改jndi名字 326

12.9.6 運行測試 327

12.10 使用cactus 328

12.10.1 用cactus編寫ejb單元測試 328

12.10.2 項目目錄結構 329

12.10.3 打包cactus測試 329

12.10.4 執行cactus測試 333

12.11 小結 334

a 原始碼說明 335

a.1 獲取原始碼 336

a.2 原始碼概覽 336

a.3 外部庫 338

a.4 jar版本 339

a.5 目錄結構慣例 340

b eclipse快速上手 341

b.1 安裝eclipse 342

b.2 從原始碼中建立eclipse項目 342

b.3 從eclipse中運行junit測試 343

b.4 從eclipse中執行ant腳本 344

b.5 從eclipse中運行cactus測試 345

參考文獻 346

索引 351

相關詞條

相關搜尋

熱門詞條

聯絡我們