單元測試的藝術∣以 JavaScript 為例
The Art of Unit Testing- Third Edition
-
79折 537元
680元
-
預計最高可得金幣25點 ? 可100%折抵
活動加倍另計 -
HAPPY GO享100累1點 4點抵1元折抵無上限
-
分類:中文書>電腦資訊>網頁開發>JavaScript/jQuery追蹤? 追蹤分類後,您會在第一時間收到分類新品通知。
- 作者: Roy Osherove, Vladimir Khorikov 追蹤 ? 追蹤作者後,您會在第一時間收到作者新書通知。
- 譯者:賴屹民
- 出版社: 碁峰資訊 追蹤 ? 追蹤出版社後,您會在第一時間收到出版社新書通知。
- 出版日:2025/04/11
活動訊息
內容簡介
內容簡介:「本書是我們的測試經典。JavaScript社群何其幸運,因為這本書改用我們喜愛的語言。」
—Yoni Goldberg,Node.js 測試顧問,Node.js Best Practices 的作者
「這是一本測試名著!」
—Jaume Lopez,Institut Guttmann
「這本書教你測試哲學,以及單元測試的實作細節。」
—Matteo Gildone
Springer Nature
「本書對於測試的對象、時機,以及如何做好測試提出適當的見解。」
—Rich Yonts,Teradata
單元測試的藝術並非只有掌握正確的工具和實踐方法而已,也包含瞭解優秀測試的運作原理、為每一個獨特的情況找出正確的策略,以及在測試過程一團亂時知道該怎麼做。本書提供的觀點和建議將改變你測試軟體的方式。
《單元測試的藝術》第三版將教你寫出容易閱讀與維護的測試,不僅介紹測試的基本寫法,也深入探討範圍擴及整個組織的測試策略、問題排除、處理遺留碼(legacy code)和「冷酷」重構。你會愛上這些實際的範例和熟悉的情境,它們將讓你在閱讀的過程中彷彿親臨測試現場。這本第三版增加適用於物件導向、泛函設計,和模組化風格的技術。書中的範例使用 JavaScript。
本書主題包括:
•決定測試類型和策略
•測試的進入點&退出點
•重構遺留碼
•fake、stub、mock 物件,與分隔框架
•物件導向、泛函,與模組化測試風格
書中的範例使用 JavaScript、TypeScript 與 Node.js。
—Yoni Goldberg,Node.js 測試顧問,Node.js Best Practices 的作者
「這是一本測試名著!」
—Jaume Lopez,Institut Guttmann
「這本書教你測試哲學,以及單元測試的實作細節。」
—Matteo Gildone
Springer Nature
「本書對於測試的對象、時機,以及如何做好測試提出適當的見解。」
—Rich Yonts,Teradata
單元測試的藝術並非只有掌握正確的工具和實踐方法而已,也包含瞭解優秀測試的運作原理、為每一個獨特的情況找出正確的策略,以及在測試過程一團亂時知道該怎麼做。本書提供的觀點和建議將改變你測試軟體的方式。
《單元測試的藝術》第三版將教你寫出容易閱讀與維護的測試,不僅介紹測試的基本寫法,也深入探討範圍擴及整個組織的測試策略、問題排除、處理遺留碼(legacy code)和「冷酷」重構。你會愛上這些實際的範例和熟悉的情境,它們將讓你在閱讀的過程中彷彿親臨測試現場。這本第三版增加適用於物件導向、泛函設計,和模組化風格的技術。書中的範例使用 JavaScript。
本書主題包括:
•決定測試類型和策略
•測試的進入點&退出點
•重構遺留碼
•fake、stub、mock 物件,與分隔框架
•物件導向、泛函,與模組化測試風格
書中的範例使用 JavaScript、TypeScript 與 Node.js。
目錄
【第一部分 邁出第一步】
chapter1 單元測試基礎
1.1 第一步
1.2 定義單元測試(一步一步來)
1.3 進入點和退出點
1.4 退出點類型
1.5 不同的退出點,不同的技術
1.6 從零開始編寫測試
1.7 優良單元測試的特點
1.8 整合測試
1.9 我們的最終定義
1.10 測試驅動開發
chapter2 第一個單元測試
2.1 介紹Jest
2.2 程式庫、斷言、執行器和報告器
2.3 單元測試框架提供的功能
2.4 介紹PasswordVerifier專案
2.5 verifyPassword的第一個Jest測試
2.6 嘗試使用beforeEach()方法
2.7 嘗試工廠方法
2.8 圓滿test()
2.9 重構成參數化的測試程式
2.10 檢查預期會被丟出來的錯誤
2.11 設定測試分類
【第二部分 核心技術】
chapter3 使用stub來切斷依賴關係
3.1 依賴項目的類型
3.2 使用stub的理由
3.3 被廣泛接受的stubbing設計方法
3.4 泛函注入技術
3.5 模組化注入技術
3.6 使用具備建構函式的物件
3.7 物件導向注入技術
chapter4 使用mock物件來進行互動測試
4.1 互動測試、mock和stub
4.2 依賴logger
4.3 標準風格:參數重構
4.4 區分mock和stub的重要性
4.5 模組化風格的mock
4.6 泛函風格的mock
4.7 物件導向風格的mock
4.8 處理複雜的介面
4.9 部分mock
chapter5 分隔框架
5.1 定義分隔框架
5.2 動態偽造模組
5.3 泛函動態mock和stub
5.4 物件導向的動態mock和stub
5.5 動態地stubbing行為
5.6 分隔框架的優勢和陷阱
chapter6 非同步程式的單元測試
6.1 處理非同步資料抓取
6.2 讓程式更適合進行單元測試
6.3 處理定時器
6.4 處理常見事件
6.5 引入DOM測試庫
【第三部分測試程式碼】
chapter7 可信的測試
7.1 如何知道你信任一個測試
7.2 測試為何會失敗
7.3 避免在單元測試中加入邏輯
7.4 在通過的測試中,聞到虛假的信任感
7.5 處理不穩定的測試
chapter8 易維護性
8.1 因測試失敗而被迫進行的更改
8.2 讓維護工作更輕鬆的重構
8.3 避免過度規範
【第四部分設計和流程】
chapter9 易讀性
9.1 單元測試的命名
9.2 魔法值和變數命名
9.3 將斷言與操作分開
9.4 設置和卸除
chapter10 制定測試策略
10.1 常見的測試類型和階層
10.2 測試階層的反模式
10.3 測試配方策略
10.4 管理交付管道
chapter11 制定測試策略
11.1 成為改革代理人的步驟
11.2 成功之道
11.3 失敗之道
11.4 影響因素
11.5 棘手問題和答案
chapter12 與遺留碼共舞
12.1 從哪裡開始加入測試?
12.2 決定一個選擇策略
12.3 在重構之前編寫整合測試
附錄 對函式和模組進行monkey-patch
索引
chapter1 單元測試基礎
1.1 第一步
1.2 定義單元測試(一步一步來)
1.3 進入點和退出點
1.4 退出點類型
1.5 不同的退出點,不同的技術
1.6 從零開始編寫測試
1.7 優良單元測試的特點
1.8 整合測試
1.9 我們的最終定義
1.10 測試驅動開發
chapter2 第一個單元測試
2.1 介紹Jest
2.2 程式庫、斷言、執行器和報告器
2.3 單元測試框架提供的功能
2.4 介紹PasswordVerifier專案
2.5 verifyPassword的第一個Jest測試
2.6 嘗試使用beforeEach()方法
2.7 嘗試工廠方法
2.8 圓滿test()
2.9 重構成參數化的測試程式
2.10 檢查預期會被丟出來的錯誤
2.11 設定測試分類
【第二部分 核心技術】
chapter3 使用stub來切斷依賴關係
3.1 依賴項目的類型
3.2 使用stub的理由
3.3 被廣泛接受的stubbing設計方法
3.4 泛函注入技術
3.5 模組化注入技術
3.6 使用具備建構函式的物件
3.7 物件導向注入技術
chapter4 使用mock物件來進行互動測試
4.1 互動測試、mock和stub
4.2 依賴logger
4.3 標準風格:參數重構
4.4 區分mock和stub的重要性
4.5 模組化風格的mock
4.6 泛函風格的mock
4.7 物件導向風格的mock
4.8 處理複雜的介面
4.9 部分mock
chapter5 分隔框架
5.1 定義分隔框架
5.2 動態偽造模組
5.3 泛函動態mock和stub
5.4 物件導向的動態mock和stub
5.5 動態地stubbing行為
5.6 分隔框架的優勢和陷阱
chapter6 非同步程式的單元測試
6.1 處理非同步資料抓取
6.2 讓程式更適合進行單元測試
6.3 處理定時器
6.4 處理常見事件
6.5 引入DOM測試庫
【第三部分測試程式碼】
chapter7 可信的測試
7.1 如何知道你信任一個測試
7.2 測試為何會失敗
7.3 避免在單元測試中加入邏輯
7.4 在通過的測試中,聞到虛假的信任感
7.5 處理不穩定的測試
chapter8 易維護性
8.1 因測試失敗而被迫進行的更改
8.2 讓維護工作更輕鬆的重構
8.3 避免過度規範
【第四部分設計和流程】
chapter9 易讀性
9.1 單元測試的命名
9.2 魔法值和變數命名
9.3 將斷言與操作分開
9.4 設置和卸除
chapter10 制定測試策略
10.1 常見的測試類型和階層
10.2 測試階層的反模式
10.3 測試配方策略
10.4 管理交付管道
chapter11 制定測試策略
11.1 成為改革代理人的步驟
11.2 成功之道
11.3 失敗之道
11.4 影響因素
11.5 棘手問題和答案
chapter12 與遺留碼共舞
12.1 從哪裡開始加入測試?
12.2 決定一個選擇策略
12.3 在重構之前編寫整合測試
附錄 對函式和模組進行monkey-patch
索引
配送方式
-
台灣
- 國內宅配:本島、離島
-
到店取貨:
不限金額免運費
-
海外
- 國際快遞:全球
-
港澳店取:
詳細資料
詳細資料
-
- 語言
- 中文繁體
- 裝訂
- 紙本平裝
-
- ISBN
- 9786263249912
- 分級
- 普通級
-
- 頁數
- 344
- 商品規格
- 18開17*23cm
-
- 出版地
- 台灣
- 適讀年齡
- 全齡適讀
-
- 注音
- 級別
訂購/退換貨須知
退換貨須知:
**提醒您,鑑賞期不等於試用期,退回商品須為全新狀態**
-
依據「消費者保護法」第19條及行政院消費者保護處公告之「通訊交易解除權合理例外情事適用準則」,以下商品購買後,除商品本身有瑕疵外,將不提供7天的猶豫期:
- 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮食品)
- 依消費者要求所為之客製化給付。(客製化商品)
- 報紙、期刊或雜誌。(含MOOK、外文雜誌)
- 經消費者拆封之影音商品或電腦軟體。
- 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書、電子雜誌、下載版軟體、虛擬商品…等)
- 已拆封之個人衛生用品。(如:內衣褲、刮鬍刀、除毛刀…等)
- 若非上列種類商品,均享有到貨7天的猶豫期(含例假日)。
- 辦理退換貨時,商品(組合商品恕無法接受單獨退貨)必須是您收到商品時的原始狀態(包含商品本體、配件、贈品、保證書、所有附隨資料文件及原廠內外包裝…等),請勿直接使用原廠包裝寄送,或於原廠包裝上黏貼紙張或書寫文字。
- 退回商品若無法回復原狀,將請您負擔回復原狀所需費用,嚴重時將影響您的退貨權益。
商品評價