測試驅動開發實用指南

測試驅動開發是近年來“敏捷革命”中最熱的話題之一,但是,市面上鮮見與此相關的有深度的作品。這本書的出版填補了這個空白,滿足了眾多一執行緒序員的需要。

基本信息

內容簡介

測試驅動開發(TDD)是近年來“敏捷革命”中最熱的話題之一,但是,市面上鮮見與此相關的有深度的作品。這本書的出版填補了這個空白,滿足了眾多一執行緒序員的需要。作者DavisAstels將這本書看作是KentBeck的經典作品《TestDrivenDevelopmentByExample》(英文影印版及中文版由中國電力出版社出版)的補充,重點闡述利用TDD開發所必要的技術和工具上,因此對實際開發更具實用性。

本書共分四部分。首先介紹了與TDD有關的基本主題,例如重構、意圖導向編程(programmingbyintention),當然還有TDD背後的原理剖析。接著深入分析了一些工具和技術,例如JUNIT、模擬對象(mockobjects)。第三部分主要講解如何將TDD套用到一個真實Java項目,這是本書的精華所在,作者親自帶你進入TDD世界,告訴你如何將看似複雜的“測試為先”在項目開發中盡情演繹。第四部分逐一概述了xUnit家族成員,如RUBYUNIT、SUNIT等。附錄包含極限編程和敏捷開發的入門材料,以及一些線上資源。

本書還包含了大量練習題並附有詳盡的參考答案,以方便讀者的學習,加深讀者對本書內容的理解。

著名的敏捷開發專家DaveAstels通過一個從頭至尾使用JavaJ和Unit測試框架創建的項目,向你展示了TDD的精妙之處。你將會領悟到“測試為先”的工作機理,它之所以成為一種有效開發方法的原因,使用過程中將會碰到的困難以及如何在現實中取得TDD所許諾的一切。

·最具實用性!書中遍布了可下載的示例代碼、練習題以及網上資源連結

·介紹強大的TDD工具和技術——包括關鍵的JUnit擴展,相關內容由它們的創建者(ScottAmbler、TimBacon、MikeBowler、MikeClark、BryanDollery、JamesNewkirk、BobPayne、KayPentacost和JensUwePipka)撰寫。

作者簡介

DavidAstels早在1985年就開始編寫軟體,涉及領域從嵌入式環境控制到智慧財產權保護系統,直到電能交易系統。他創建了Adaption,專門提供極限編程(XP)和軟體工藝(SoftwareCraftsmanship)方面的諮詢、培訓、指導和編程業務。他從事TheCoadLetter中TDD一版的編輯工作,並且在一些最為重要的有關極限編程和敏捷過程的大會上發表演講。同時他也是《APracticalGuidetoeXtremePronramming》(PrecticeHallPTR)作者之一。

目錄

序言

前言

第1部分背景知識介紹

第1章測試驅動開發

什麼是測試驅動開發?

讓計算機來告訴你

一個簡短的例子

小節

第2章重構

什麼是重構?

什麼時候進行重構

如何重構

一些重要的重構方法

通過重構來引入模式

小節

第3章意圖導向的編程

名字

簡單

要做有根據的假設

如何進行意圖導向的編程

“無需注釋”

小節

第2部分工具與技術

第4章JUnit

體系結構概覽

斷言

編寫一個測試用例(TestCase)

運行測試

使用setUp()和tearDown()

使用TestSuite()

相互關係

測試的歸屬問題

一些建議

小節

第5章JUnit的擴展(extensions)

標準擴展

使用MockObjects補充的斷言

使用junitperf來來測試性能與可伸縮性

DaedalosJUnit擴展

使用xmlUnit來編寫基於XML的測試

gargoyle軟體公司的JUnit擴展

第6章與JUnit有關的工具

jester

NoUnit

Clover

Eclipse

IDEA

第7章模擬對象(MockObjects)

模擬對象

例子解說

模擬對象的用途

如果能這樣該有多好?

一個普通的例子

MockObjects框架

MockMaker

EasyMock

小節

第8章以測試優先的方式開發一個GUI套用

例子

AWT機器人

蠻力測試(BruteForce)

JFCUnit

jemmy

超瘦(Ultru-Thin)GUI

小節

第3部分一個徹頭徹尾的採用TDD開發的Java軟體項目

第9章項目描述

概述

用戶描述及相關任務

第10章電影列表

為電影製作一個容器

為電影列表創建GUI

通過GUI增加電影

回顧

第11章可以為電影更名

支持對電影名的編輯

對電影更名的GUI

回顧

第12章電影是唯一的

電影是唯一的

發現不唯一時的出錯信息

回顧

第13章評分(ratings)

給電影打分

在GUI中顯示評分

對評分進行編輯

回顧

第14章類別

增加一種類別

在GUI中顯示類別

提供可供選擇的類別

回顧

第15章根據類別進行篩選

獲得基於類別的子列表

支持一種稱做ALL(所有)的類別

在GUI上添加類別選擇器

處理電影類別的變更

界面修整

回顧

第16章持續性存儲(persistence)

將數據輸出到平直檔案中

GUI中的Save-As選單項

GUI中的Save選單項

從平直檔案中讀取數據

載入到GUI中

回顧

第17章排序

電影比較

對電影列表進行排序

從MovieListEditor中獲取排序後的列表

在GUI中增加排序操作

回顧

第18章多重評分

多重評分

評分來源

修正後的持續性存儲

在GUI中顯示電影的多重評分

在GUI中添加增加評分的功能

刪除單一評分域

回顧

第19章評論

為評分附加評論

保存評論

載入評論

顯示評論

增加評論

回顧

第20章項目回顧

設計

測試代碼vs.套用代碼

測試質量

模擬對象的使用

總體評述

調試

測試清單

小節

第4部分xUnit一族

第21章RUBYUNIT

框架描述

範例

第22章SUNIT

框架描述

範例

第23章CppUnit

框架描述

範例

第24章Nunit

框架描述

範例

第25章PYUNIT

框架描述

範例

第26章VBUNIT

框架描述

範例

附錄A極限編程

敏捷革命

極限編程

四種變化量(TheFourVariables)

價值觀(Values)

實踐方法(Practices)

小節

附錄B敏捷建模

與建模有關的荒誕言

敏捷建模(AM)導論

什麼是敏捷模型?

附錄C在線上資源

論壇

與敏捷建模有關的信息

與極限編程有關的信息

與JUnit有關的軟體

與JUnit有關的信息

各種工具

XUnit家族的其他成員

相關公司

雜類

附錄D練習答案

參考文獻

相關詞條

相關搜尋

熱門詞條

聯絡我們