Thanks
Introduction
- Why Another Unit Testing Book?
- Testing Is A Mindset
- A Bit Of History…
Testing Economics
- Selling Unit Testing
- The Deceptive Cost of Writing Tests
- The Actual Cost of Tests
- The Real Time Sink
- Unit vs. Integration Tests
- Risk And Reward
- Maintenance Costs
- Triangulation
Organization Strategy
- The Stairs
- The Hump
- The Death Spiral Of Slow Tests
- The Mocking Trap
- Reluctant Teams
The Tools
- Test Frameworks
- Mocking Frameworks
- Refactoring Tools
- Source Control
- Continuous Integration Tools
- Summary
Test Attributes
- Validity
- Readability
- Speed
- Accuracy
- Differentiation
- Maintenance
- Deterministic
- Footprint
- Isolation
- Truthiness
Testing Strategy
- Step 1: Understanding the problem.
- Step 2: Designing a solution.
- Step 3: Test categorization
- Step 4: Testability design considerations
- Step 5: Identify design constraints
- Step 6: Prepare existing code
- Step 7: Write the tests.
- Step 8: Review
- Step 9: Knowledge sharing
Writing Tests
- Testability and Good Design
- Should We Write That Test?
- What Bug Will It Find?
- Testing error handling and exceptions
- Multiple Asserts: Yea or Nay?
- Anti patterns
From Legacy Code To Testable Code
- Improve Understanding
- Improving Accessibility
- Removing dependencies
- Simplification
TDD
- Deceptively Simple
- The #1 Benefit of TDD
- Introducing TDD
- Emergent Design
- TDD In Real Life
- Step 2 - Define the acceptance criteria
- Step 3 - Identify the main components that the stories flow through
- Step 4 - Re-prioritize the stories
- Step 5 - Component design decisions
- Step 6 - Interface design decisions
- Step 7 - Write the code
- Step 8 - Integrate continuously
- Step 9 - Complete the story and move to the next