Pragmatic Unit Testing in Java with JUnit

Andrew P. Hunt, David D. Thomas · Medical Entomology and Zoology · 2003

About the Starter Kit Preface 1 Introduction 1.1 Coding With Confidence 1.2 What is Unit Testing? 1.3 Why Should I Bother with Unit Testing? 1.4 What Do I Want to Accomplish? 1.5 How Do I Do Unit Testing? 1.6 Excuses For Not Testing 1.7 Roadmap 2 Your First Unit Tests 2.1 Planning Tests 2.2 Testing a Simple Method. 2.3 More Tests 3 Writing Tests in JUnit 3.1 Structuring Unit Tests 3.2 JUnit Asserts 3.3 JUnit Framework 3.4 JUnit Test Composition 3.5 JUnit Custom Asserts 3.6 JUnit and Exceptions 3.7 More on Naming 3.8 JUnit Test Skeleton 4 What to Test: The Right-BICEP 4.1 Are the Results Right? 4.2 Boundary Conditions 4.3 Check Inverse Relationships 4.4 Cross-check Using Other Means 4.5 Force Error Conditions 4.6 Performance Characteristics 5 CORRECT Boundary Conditions 5.1 Conformance 5.2 Ordering 5.3 Range 5.4 Reference 5.5 Existence 5.6 Cardinality 5.7 Time 5.8 Try It Yourself 6 Using Mock Objects 6.1 Simple Stubs 6.2 Mock Objects 6.3 Testing a Servlet 6.4 Easy Mock Objects 7 Properties of Good Tests 7.1 Automatic 7.2 Thorough 7.3 Repeatable 7.4 Independent 7.5 Professional 7.6 Testing the Tests 8 Testing on a Project 8.1 Where to Put Test Code 8.2 Test Courtesy 8.3 Test Frequency 8.4 Tests and Legacy Code 8.5 Tests and Reviews 9 Design Issues 9.1 Designing for Testability 9.2 Refactoring for Testing 9.3 Testing the Class Invariant 9.4 Test-Driven Design 9.5 Testing Invalid Parameters A Gotchas A.1 As Long As The Code A.2 Smoke Tests A.3 Works On My Machine A.4 Floating-Point Problems A.5 Tests Take Too Long A.6 Tests Keep Breaking A.7 Tests Fail on Some Machines A.8 My main is Not Being Run B Installing JUnit B.1 Command-line installation B.2 Does it work? C JUnit Test Skeleton C.1 Helper Class C.2 Basic Template D Resources D.1 On The Web D.2 Bibliography E Summary: Pragmatic Unit Testing F Answers to Exercises

Read the paper · More papers on PaperTik