目录:
Foreword.
Preface.
I. BACKGROUND.
1. Test-Driven Development.
What Is Test-Driven Development? Let the Computer Tell You. A Quick
Example. Summary.
2. Refactoring.
What Is Refactoring? When to Refactor. How to Refactor. Some Important
Refactorings. Refactoring to Patterns. Summary.
3. Programming By Intention.
Names. Simplicity. Warranted Assumptions. How to Program by Intention.
“No Comment”. Summary.
II. TOOLS AND TECHNIQUES.
4. JUNIT.
Architectural Overview. The Assertions. Writing a TestCase. Running
Your Tests. Using setUp() and tearDown(). Using TestSuite. How Does
It All Fit Together? Where Do Tests Belong? Tips. Summary.
5. JUNITEXTENSIONS.
Standard Extensions. Adding Missing Asserts with MockObjects. Performance
and Scalability with JUnitPerf. Daedalos JUnit Extensions. Writing
XML-Based Tests with xmlUnit. Gargoyle Software JUnit Extensions.
6. JUNIT-Related Tools.
Jester. NoUnit. Clover. Eclipse. IDEA.
7. MockObjects.
Mock Objects. An Illustrative Example. Uses for Mock Objects. Wouldn't
It Be Nice? A Common Example. The MockObjects Framework. MockMaker.
EasyMock. Summary.
8. Developing a GUI Test-First.
The Example. The AWT Robot. Brute Force. JFCUnit. Jemmy. Ultra-Thin
GUI. Summary.
III. A JAVA PROJECT: TEST-DRIVEN END TO END.
9. THEPROJECT.
Overview. User Stories and Tasks.
10. Movie List.
Make a Movie Container. Make a Movie List GUI. Add a Movie in the
GUI. Retrospective.
11. Movies Can Be Renamed.
Support Movie Name Editing. Movie Rename GUI. Retrospective.
12. Movies Are Unique.
Movies Are Unique. Error Message on Non-Uniqueness. Retrospective.
13. Ratings.
Add a Single Rating to Movie. Show the Rating in the GUI. Edit
the Rating. Retrospective.
14. Categories.
Add a Category. Show the Category in the GUI. Add a Selection of
Category. Retrospective.
15. Filter On Category.
Get a Sublist Based on Category. Support an ALL category. Add a
Category Selector to the GUI. Handle Changing a Movie's Category.
Interface Cleanup. Retrospective.
16. Persistence.
Write to a Flat File. Save-As in GUI. Save in GUI. Read from a
Flat File. Load in GUI. Retrospective.
17. Sorting.
Compare Movies. Sort a MovieList. Ask a MovieListEditor for Sorted
Lists. Add a Way to Sort to the GUI. Retrospective.
18. Multiple Ratings.
Multiple Ratings. Rating Source. Revised Persistence. Show Multiple
Ratings in the GUI. Add a Rating in the GUI. Remove the Single-Rating
Field. Retrospective.
19. Reviews.
Add a Review to Ratings. Save Review. Load Review. Display Review.
Add a Review. Retrospective.
20. Project Retrospective.
The Design. Test vs Application. Test Quality. Our Use of Mocks.
General Comments. Debugging. List of Tests. Summary.
IV. XUNIT FAMILY MEMBERS.
21. RUBYUNIT.
22. SUNIT.
23. CPPUNIT.
24. NUNIT.
25. PYUNIT.
26. VBUNIT.
V. APPENDICES.
Appendix A: Extreme Programming.
The Agile Revolution. eXtreme Programming. The Four Variables.
The Values. The Practices. Summary.
Appendix B: Agilemodeling.
The Myths Surrounding Modeling. An Introduction to Agile Modeling
(AM). What Are Agile Models?
Appendix C: Online Resources.
Forums. Information on Agile Processes. Information on Extreme
Programming. JUnit-Related Software. JUnit-Related Information.
Tools. Other XUnit Family Members. Companies. Miscellaneous.
Appendix D: Answers To Exercises.
Bibliography.
Index.
|