單元測試的藝術|以 JavaScript 為例 3/e
Roy Osherove, Vladimir Khorikov 賴屹民 譯
- 出版商: 碁峰資訊 參展書2書75折
- 出版日期: 2025-04-11
- 定價: $680
- 售價: 7.9 折 $537
- 語言: 繁體中文
- 頁數: 344
- ISBN: 6263249919
- ISBN-13: 9786263249912
-
相關分類:
Unit Test 單元測試
- 此書翻譯自: The Art of Unit Testing : With Examples in JavaScript, 3/e (Paperback)
立即出貨 (庫存 > 10)
買這商品的人也買了...
-
網站可靠性工程|Google 的系統管理之道 (Site Reliability Engineering: How Google Runs Production Systems)(SRE)-*外觀稍有瑕疵,不介意者再下單$780$616 -
微服務架構設計模式 (Microservices Patterns: With examples in Java)$834$792 -
重構|改善既有程式的設計, 2/e (繁中平裝版)(Refactoring: Improving The Design of Existing Code, 2/e)$800$632 -
資料密集型應用系統設計 (Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems)$980$774 -
Web API 設計原則|API 與微服務傳遞價值之道 (Principles of Web API Design: Delivering Value with APIs and Microservices)$520$410 -
建構微服務|設計細微化的系統, 2/e (Building Microservices: Designing Fine-Grained Systems, 2/e)$880$695 -
Google 的軟體工程之道|從程式設計經驗中吸取教訓 (Software Engineering at Google)$880$695 -
軟體測試實務 : 業界成功案例與高效實踐 [ I ]$650$507 -
全棧測試|交付高品質軟體的實務指南 (Full Stack Testing: A Practical Guide for Delivering High Quality Software)$680$537 -
Clean Architecture 實作篇:在整潔的架構上弄髒你的手 (第二版) (Get Your Hands Dirty on Clean Architecture, 2/e)$600$468 -
Staff 工程師之路|獻給個人貢獻者成長與改變的導航指南 (The Staff Engineer's Path)$580$458 -
實戰領域驅動設計:高效軟體開發的正確觀點、應用策略與實作指引 (Implementing Domain-Driven Design)$1,280$998 -
資料庫內部原理|深入了解分散式資料系統的運作方式$780$616 -
軟體工程師求職策略大全:透過外商面試題目演練、手把手履歷教學,跟招募員過招、白板解題、薪資談判到入職準備,帶讀者用最有效的方式找工作$680$530 -
無瑕的程式碼 軟體工匠篇:程式設計師必須做到的紀律、標準與倫理 (Clean Craftsmanship: Disciplines, Standards, and Ethics)$720$561 -
軟體開發者職涯應變手冊|穿越職涯迷霧的絕佳導航 (The Software Developer's Career Handbook: A Guide to Navigating the Unpredictable)$720$568 -
先整理一下?|個人層面的軟體設計考量 (Tidy First?: A Personal Exercise in Empirical Software Design)$480$379 -
讓 AI 好好說話!從頭打造 LLM (大型語言模型) 實戰秘笈$680$537 -
軟體工程師的英語使用守則:English for Developers$420$357 -
內行人才知道的系統設計面試指南 第二輯 (System Design Interview – An Insider's Guide: Volume 2)$820$647 -
FastAPI|現代 Python 網站開發 (FastAPI : Modern Python Web Development)$680$537 -
從源頭就優化 - 動手開發自己的編譯器實戰$880$695 -
無瑕的程式碼 函數式設計篇:原則、模式與實踐$780$608 -
軟體設計耦合的平衡之道:建構模組化軟體系統的通用設計原則 (Balancing Coupling in Software Design: Successful Software Architecture in General and Distributed Systems)$650$507 -
深入淺出軟體架構 (Head First Software Architecture)$980$774
碁峰書展|參展書2書75折 詳見活動內容 »
-
79折
不用自己寫!用 GitHub Copilot 搞定 LLM 應用開發$600$474 -
79折
內行人才知道的系統設計面試指南$580$458 -
79折
提升程式設計師的面試力|189道面試題目與解答, 6/e (修訂版) (Cracking the Coding Interview : 189 Programming Questions and Solutions, 6/e)$980$774 -
75折
Software Architecture in Practice, 4/e (繁體中文版)$780$585 -
79折
內行人才知道的系統設計面試指南 第二輯 (System Design Interview – An Insider's Guide: Volume 2)$820$647 -
79折
敏捷團隊目標設定指南|OKR 落地與成果導向實踐法$500$395 -
79折
內行人才知道的物件導向設計面試指南$690$545 -
79折
內行人才知道的生成式 AI 系統設計面試指南 (Generative AI System Design Interview)$750$592 -
75折
團隊自省指南|打造敏捷團隊$500$375 -
79折
Arduino 自走車最佳入門與應用 -- 打造輪型機器人輕鬆學, 2/e$600$474 -
79折
凡人也能懂的白話人工智慧演算法 (Grokking Artificial Intelligence Algorithms)$580$458 -
79折
戰勝 C語言, 3/e$600$474 -
79折
內行人才知道的程式設計模式面試指南 (Coding Interview Patterns: Nail Your Next Coding Interview)$780$616 -
79折
SQL Server 2025/2022 資料庫設計與開發實務$700$553 -
79折
AI 超神簡報術:NotebookLM × Gemini × Gamma 全解鎖 (附範例素材/提示詞/影音教學)$550$434 -
79折
Python 初學特訓班:從快速入門、主流應用到 AI 全面實戰, 6/e (附超過500分鐘影音教學/範例程式)$490$387 -
79折
重構|改善既有程式的設計, 2/e (繁中平裝版)(Refactoring: Improving The Design of Existing Code, 2/e)$800$632 -
79折
Python 自動化的樂趣|搞定重複瑣碎&單調無聊的工作, 3/e (Automate the Boring Stuff with Python, 3/e)$980$774 -
79折
Visual C# 2026 超級必修課:ChatGPT 與 Copilot 協作、Azure OpenAI 實戰開發$580$458 -
75折
ChatGPT 5 實戰應用:提問技巧、資料解析、圖像生成、語音助理、工作自動化、跨工具整合$500$375 -
75折
深入 Linux Kernel 程式設計:kernel 內部原理、模組開發與同步機制, 2/e (Linux Kernel Programming : A comprehensive and practical guide to kernel internals, writing modules, and kernel synchronization, 2/e)$980$735 -
79折
內行人才知道的機器學習系統設計面試指南 (Machine Learning System Design Interview)$680$537 -
5折
戰勝 C語言, 2/e (過版書特價)$580$290 -
79折
AI 提問 X 學習 X 應用:ChatGPT、NotebookLM、Gemini、GitHub Copilot,從零到 AI Agent 實戰$390$308 -
79折
Code That Fits in Your Head|軟體工程的啟發式方法$580$458
商品描述
「本書是我們的測試經典。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。
作者簡介
Roy Osherove 是國際公認的單元測試和敏捷軟體方法專家。
Vladimir Khorikov 是 Manning 《Unit Testing Principles, Practices, and Patterns》和《Plural-sight》的作者,也是 Microsoft MVP。
目錄大綱
【第一部分 邁出第一步】
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
索引









