序
前言
致謝
第1章 起步
1.1 超越JUnit 3
1.2 JUnit 4
1.3 針對可測試性而設計
1.4 TestNG
1.5 本章小結
第2章 測試設計模式
2.1 針對失敗而測試
2.2 工廠
2.3 數據驅動測試
2.4 異步測試
2.5 測試多線程代碼
2.6 性能測試
2.7 模擬和樁
2.8 依賴的測試
2.9 繼承和annotation范圍
2.10 測試分組
2.11 代碼覆蓋率
2.12 本章小結
第3章 企業(yè)級測試
3.1 典型企業(yè)級場景
3.2 一個具體例子
3.3 測試實現
3.4 探索競爭消費者模式
3.5 重構的作用
3.6 本章小結
第4章 Java EE測試
4.1 容器內測試與容器外測試的對比
4.2 容器內測試
4.3 Java命名和目錄接口(JNDI)
4.4 Java數據庫連接(JDBC)
4.5 Java事務API(JTA)
4.6 Java消息服務(JMS)
4.7 Java持久API(JPA)
4.8 Enterprise JavaBeans 3.0(EJB3)
4.9 Java API for XML Web Services(JAX-WS)
4.10 Servlets
4.11 XML
4.12 本章小結
第5章 集成
5.1 Spring
5.2 Guice
5.3 DbUnit
5.4 HtmlUnit
5.5 Selenium
5.6 Swing UI測試
5.7 針對畫圖代碼的測試
5.8 持續(xù)集成
5.9 本章小結
第6章 擴展TestNG
6.1 TestNG API
6.2 BeanShell
6.3 方法選擇器
6.4 Annotation轉換器
6.5 報告
6.6 編寫自定義Annotation
6.7 本章小結
第7章 閑言碎語
7.1 動機
7.2 TestNG哲學
7.3 關注和提供異常
7.4 有狀態(tài)的測試
7.5 測試驅動開發(fā)的缺點
7.6 測試私有方法
7.7 測試與封裝
7.8 調試器的威力
7.9 記日志的最佳實踐
7.10 時間的價值
7.11 本章小結
附錄A IDE集成
附錄B TestNG JavaDoc
附錄C testng.xml
附錄D 從JUnit遷移