- Developer Testing
- Introduction to Testing and Test Driven Development (TDD)
- The importance of Testing
- XP, Agile and TDD
- Testing vs Debugging
- Overview of Unit Testing
- Rhythm - Red, Green, Refactor
- Obvious Implementation or Fake It
- Mock Objects
- Unit Testing Java code with jUnit
- Test cases, test suites, fixtures.
- What to test
- Testing for Exceptions
- Testing Isolations
- Test Coverage
- Integration with Gradle
- Refactoring Java Code
- What, when and why
- Bad Smells
- Decomposition and delegation
- Refactoring legacy code
- Decoupling/Test Double
- Stub, Spy, Mocking, Fake, Dummy
- Separating Test Data from Test Code
- Layered Architecture
- Dependency Inversion Principle
- Dependency Injection
- Automating Tests / Continuous Integration
- Introduction to Jenkins CI
- Checking out & Committing code with Git