注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件工程及軟件方法學(xué)有效的單元測(cè)試

有效的單元測(cè)試

有效的單元測(cè)試

定 價(jià):¥59.00

作 者: Lasse Koskela 著
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng): 華章程序員書(shū)庫(kù)
標(biāo) 簽: 計(jì)算機(jī)/網(wǎng)絡(luò) 軟件工程/開(kāi)發(fā)項(xiàng)目管理

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787111483434 出版時(shí)間: 2014-11-19 包裝: 平裝
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 200 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)分三部分,共9章。第一部分(第1~3章)主要闡述測(cè)試的目的與原因,并分析作為常用工具的測(cè)試替身的作用。第1章先從整體闡釋測(cè)試先行所帶來(lái)的價(jià)值,以及各種對(duì)測(cè)試和測(cè)試質(zhì)量的影響。第2章定義了如何才能寫(xiě)出優(yōu)秀的測(cè)試。第3章談及現(xiàn)代程序員最基本的工具之一——測(cè)試替身。第二部分(第4~6章)的目標(biāo)是幫助我們更好地識(shí)別并修復(fù)測(cè)試代碼中的壞味道。第4章展示破壞測(cè)試可讀性的壞味道。第5章繼續(xù)對(duì)破壞可維護(hù)性的測(cè)試提供建議。第6章涉及有關(guān)脆弱或不可靠的測(cè)試壞味道。第三部分(第7~9章)涉及Java程序員在編寫(xiě)測(cè)試時(shí)隨時(shí)可能碰到的話(huà)題。第7章介紹可測(cè)的設(shè)計(jì)的定義與作用。第8章探討JVM語(yǔ)言的共生,以及如果用另一門(mén)語(yǔ)言來(lái)測(cè)試Java代碼。第9章專(zhuān)門(mén)討論對(duì)構(gòu)建進(jìn)行加速的問(wèn)題。此外還包括兩個(gè)附錄,附錄A介紹了使用JUnit編寫(xiě)測(cè)試的入門(mén)知識(shí)。附錄B探討通過(guò)JUnit的API來(lái)擴(kuò)展其內(nèi)置功能。

作者簡(jiǎn)介

  Lasse Koskela,資深敏捷技術(shù)實(shí)踐專(zhuān)家、敏捷教練、培訓(xùn)師、顧問(wèn)和程序員,具有數(shù)十年計(jì)算機(jī)程序設(shè)計(jì)和開(kāi)發(fā)經(jīng)驗(yàn)。他精通多種編程語(yǔ)言,尤其對(duì)Java、Ruby、C/C++有獨(dú)到見(jiàn)解,熱衷于編程和追逐前沿技術(shù),在程序設(shè)計(jì)、軟件工程、項(xiàng)目管理等多個(gè)領(lǐng)域頗有建樹(shù)。目前他主攻開(kāi)源項(xiàng)目,幫助企業(yè)提高生產(chǎn)力,而且經(jīng)常在世界各地的會(huì)議上發(fā)表演講。除本書(shū)外,他還著有《測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的藝術(shù)》。

圖書(shū)目錄

序言
前言
致謝
第一部分 基礎(chǔ)
第1章 優(yōu)秀測(cè)試的承諾 2
1.1 國(guó)情咨文:編寫(xiě)更好的測(cè)試 3
1.2 測(cè)試的價(jià)值 3
1.2.1 生產(chǎn)力的因素 6
1.2.2 設(shè)計(jì)潛力的曲線(xiàn) 8
1.3 測(cè)試作為設(shè)計(jì)工具 9
1.3.1 測(cè)試驅(qū)動(dòng)開(kāi)發(fā) 9
1.3.2 行為驅(qū)動(dòng)開(kāi)發(fā) 11
1.4 小結(jié) 12
第2章 尋求優(yōu)秀 13
2.1 可讀的代碼才是可維護(hù)的代碼 14
2.2 結(jié)構(gòu)有助于理解事物 16
2.3 如果測(cè)試了錯(cuò)誤的東西就不好了 17
2.4 獨(dú)立的測(cè)試易于單獨(dú)運(yùn)行 18
2.5 可靠的測(cè)試才是可靠的 21
2.6 每個(gè)行業(yè)都有其工具而測(cè)試也不例外 22
2.7 小結(jié) 23
第3章 測(cè)試替身 24
3.1 測(cè)試替身的威力 25
3.1.1 隔離被測(cè)代碼 26
3.1.2 加速執(zhí)行測(cè)試 27
3.1.3 使執(zhí)行變得確定 27
3.1.4 模擬特殊情況 28
3.1.5 暴露隱藏的信息 29
3.2 測(cè)試替身的類(lèi)型 30
3.2.1 測(cè)試樁通常是短小的 30
3.2.2 偽造對(duì)象做事不產(chǎn)生副作用 31
3.2.3 測(cè)試間諜偷取秘密 32
3.2.4 模擬對(duì)象反對(duì)驚喜 34
3.3 使用測(cè)試替身的指南 35
3.3.1 為測(cè)試挑選合適的替身 35
3.3.2 準(zhǔn)備、執(zhí)行、斷言 36
3.3.3 檢查行為,而非實(shí)現(xiàn) 37
3.3.4 挑選你的工具 38
3.3.5 注入依賴(lài) 39
3.4 小結(jié) 39
第二部分 目錄
第4章 可讀性 42
4.1 基本斷言 43
4.1.1 示例 43
4.1.2 該對(duì)它做點(diǎn)兒什么 44
4.1.3 小結(jié) 45
4.2 過(guò)度斷言 46
4.2.1 示例 46
4.2.2 該對(duì)它做點(diǎn)兒什么 48
4.2.3 小結(jié) 50
4.3 按位斷言 50
4.3.1 示例 50
4.3.2 該對(duì)它做點(diǎn)兒什么 51
4.3.3 小結(jié) 51
4.4 附加細(xì)節(jié) 52
4.4.1 示例 52
4.4.2 該對(duì)它做點(diǎn)兒什么 53
4.4.3 小結(jié) 54
4.5 人格分裂 55
4.5.1 示例 55
4.5.2 該對(duì)它做點(diǎn)兒什么 56
4.5.3 小結(jié) 58
4.6 邏輯分割 59
4.6.1 示例 59
4.6.2 該對(duì)它做點(diǎn)兒什么 61
4.6.3 小結(jié) 63
4.7 魔法數(shù)字 64
4.7.1 示例 64
4.7.2 該對(duì)它做點(diǎn)兒什么 64
4.7.3 小結(jié) 65
4.8 冗長(zhǎng)安裝 65
4.8.1 示例 66
4.8.2 該對(duì)它做點(diǎn)兒什么 67
4.8.3 小結(jié) 68
4.9 過(guò)分保護(hù) 68
4.9.1 示例 69
4.9.2 該對(duì)它做點(diǎn)兒什么 69
4.9.3 小結(jié) 70
4.10 總結(jié) 70
第5章 可維護(hù)性 71
5.1 重復(fù) 72
5.1.1 示例 72
5.1.2 該對(duì)它做點(diǎn)兒什么 73
5.1.3 小結(jié) 75
5.2 條件邏輯 75
5.2.1 示例 76
5.2.2 該對(duì)它做點(diǎn)兒什么 76
5.2.3 小結(jié) 77
5.3 脆弱的測(cè)試 78
5.3.1 示例 78
5.3.2 該對(duì)它做點(diǎn)兒什么 79
5.3.3 小結(jié) 80
5.4 殘缺的文件路徑 80
5.4.1 示例 81
5.4.2 該對(duì)它做點(diǎn)兒什么 81
5.4.3 小結(jié) 83
5.5 永久的臨時(shí)文件 83
5.5.1 示例 84
5.5.2 該對(duì)它做點(diǎn)兒什么 85
5.5.3 小結(jié) 86
5.6 沉睡的蝸牛 86
5.6.1 示例 87
5.6.2 該對(duì)它做點(diǎn)兒什么 88
5.6.3 小結(jié) 89
5.7 像素完美 89
5.7.1 示例 89
5.7.2 該對(duì)它做點(diǎn)兒什么 90
5.7.3 小結(jié) 93
5.8 參數(shù)化混亂 94
5.8.1 示例 95
5.8.2 該對(duì)它做點(diǎn)兒什么 98
5.8.3 小結(jié) 99
5.9 方法間缺乏內(nèi)聚 100
5.9.1 示例 100
5.9.2 該對(duì)它做點(diǎn)兒什么 101
5.9.3 小結(jié) 104
5.10 總結(jié) 104
第6章 可信賴(lài) 106
6.1 注釋掉的測(cè)試 107
6.1.1 示例 107
6.1.2 該對(duì)它做點(diǎn)兒什么 108
6.1.3 小結(jié) 108
6.2 歧義注釋 109
6.2.1 示例 109
6.2.2 該對(duì)它做點(diǎn)兒什么 110
6.2.3 小結(jié) 111
6.3 永不失敗的測(cè)試 111
6.3.1 示例 112
6.3.2 該對(duì)它做點(diǎn)兒什么 112
6.3.3 小結(jié) 113
6.4 輕率承諾 113
6.4.1 示例 114
6.4.2 該對(duì)它做點(diǎn)兒什么 115
6.4.3 小結(jié) 116
6.5 降低期望 117
6.5.1 示例 117
6.5.2 該對(duì)它做點(diǎn)兒什么 118
6.5.3 小結(jié) 118
6.6 平臺(tái)偏見(jiàn) 119
6.6.1 示例 119
6.6.2 該對(duì)它做點(diǎn)兒什么 120
6.6.3 小結(jié) 121
6.7 有條件的測(cè)試 122
6.7.1 示例 122
6.7.2 該對(duì)它做點(diǎn)兒什么 123
6.7.3 小結(jié) 124
6.8 總結(jié) 124
第三部分 消遣
第7章 可測(cè)的設(shè)計(jì) 126
7.1 什么是可測(cè)的設(shè)計(jì) 126
7.1.1 模塊化設(shè)計(jì) 127
7.1.2 SOLID設(shè)計(jì)原則 128
7.1.3 上下文中的模塊化設(shè)計(jì) 129
7.1.4 以測(cè)試驅(qū)動(dòng)出模塊化設(shè)計(jì) 130
7.2 可測(cè)性的問(wèn)題 130
7.2.1 無(wú)法實(shí)例化某個(gè)類(lèi) 130
7.2.2 無(wú)法調(diào)用某個(gè)方法 131
7.2.3 無(wú)法觀察到輸出 131
7.2.4 無(wú)法替換某個(gè)協(xié)作者 131
7.2.5 無(wú)法覆蓋某個(gè)方法 132
7.3 可測(cè)的設(shè)計(jì)的指南 132
7.3.1 避免復(fù)雜的私有方法 133
7.3.2 避免final方法 133
7.3.3 避免static方法 134
7.3.4 使用new時(shí)要當(dāng)心 134
7.3.5 避免在構(gòu)造函數(shù)中包含邏輯 135
7.3.6 避免單例 137
7.3.7 組合優(yōu)于繼承 138
7.3.8 封裝外部庫(kù) 138
7.3.9 避免服務(wù)查找 139
7.4 小結(jié) 140
第8章 用其他JVM語(yǔ)言來(lái)編寫(xiě)測(cè)試 142
8.1 混合使用JVM語(yǔ)言的前提 142
8.1.1 通用收益 143
8.1.2 編寫(xiě)測(cè)試 144
8.2 用Groovy來(lái)編寫(xiě)測(cè)試 146
8.2.1 簡(jiǎn)化的測(cè)試setup 146
8.2.2 Groovy式的JUnit 4測(cè)試 148
8.3 BDD工具的表達(dá)力 149
8.3.1 用easyb寫(xiě)Groovy需求說(shuō)明 149
8.3.2 Spock Framework:編寫(xiě)更具表達(dá)力測(cè)試的激素 150
8.3.3 Spock Framework的測(cè)試替身也打了激素 152
8.4 小結(jié) 153
第9章 加速執(zhí)行測(cè)試 155
9.1 追求速度 156
9.1.1 對(duì)速度的需要 156
9.1.2 進(jìn)入狀況 156
9.1.3 對(duì)構(gòu)建進(jìn)行性能分析 157
9.1.4 對(duì)測(cè)試進(jìn)行性能分析 160
9.2 令測(cè)試代碼加速 162
9.2.1 別睡覺(jué),除非你累了 163
9.2.2 當(dāng)心膨脹的基類(lèi) 163
9.2.3 當(dāng)心冗余的setup與teardown 165
9.2.4 挑剔地添加新測(cè)試 166
9.2.5 保持本地運(yùn)行,保持快速 167
9.2.6 抵御訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的誘惑 168
9.2.7 沒(méi)有比文件I/O更慢的I/O了 169
9.3 令構(gòu)建加速 171
9.3.1 RAM磁盤(pán)帶來(lái)更快的I/O 172
9.3.2 并行構(gòu)建 173
9.3.3 改換為高性能CPU 177
9.3.4 分布式構(gòu)建 179
9.4 小結(jié) 183
附錄A JUnit入門(mén) 185
附錄B 擴(kuò)展JUnit 192

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)