TDD Intro
by Tom Gutteridge
1. Behaviour
1.1. BDD
1.1.1. Outside-in
1.1.2. JBehave example
1.2. Specification by example
1.3. What vs. how
2. Java
3. Mentality
3.1. Opposing mentalities
3.2. Coding by wishful thinking
3.2.1. IDE
3.2.1.1. Refactoring
3.2.1.1.1. Feedback
4. Isolation of system under test
4.1. Dependency injection
4.2. Test through another class?
4.3. Testing pyramid
4.3.1. ATDD
4.4. Interfaces
4.4.1. Roles
4.4.2. Contracts
4.4.3. Adaptors
4.4.3.1. 3rd Party code
4.4.3.2. Legacy code
4.4.4. Ownership of
4.5. Mock objects
4.5.1. Interaction testing
4.5.2. Over specification
4.6. Style
4.6.1. Boilerplate
4.6.2. More smaller classes
4.6.2.1. SRP
4.6.2.2. Separation of concerns
4.6.3. Polymorphism vs. switch case
4.6.4. Design patterns
4.6.4.1. Template Method vs. Strategy
4.6.4.1.1. Composition vs. inheritance
4.6.4.2. MVC
4.6.4.2.1. MVP
4.6.4.2.2. MVVM
4.6.5. Naming
4.6.6. Maintainability
5. APN
5.1. Audience
5.1.1. Developers
5.2. Series
5.2.1. Spin-off
5.3. High-level signal
6. Live coding
6.1. Practice
7. Languages
7.1. Dynamic
7.2. C#
8. Agile
8.1. XP
8.2. Scrum
8.3. Story test
8.3.1. ATDD
9. School
9.1. London
9.2. Chicago
9.2.1. Inside out