Audience
This course is for applications developers with experience of Object Orientation and Java programming who wish to understand the principles and techniques behind Test Driven Development.
Prerequisites
Delegates are expected to be familiar with the Java programming language and Object Oriented Programming. Attending our Java Programming course would provide the ideal level of knowledge.
Duration
3 days. Hands on.
This course is available on site only. Please call for details.
Course Objectives
Coming from the Agile community, Test Driven Development has become one of the most significant development techniques of the last few years. This course introduces the principles behind Test Driven Development as well as the frameworks which help to make TDD practical. It then takes delegates through TDD as a development process, considerations of design and architecture, application development etc. It also considers the role of test and TDD with respect to Code Smells, Refactoring and Acceptance Testing. A significant hands on element is included in the course allowing delegates to apply what they learn.
Course Content
Why Should I Care for Test-driven Development?
Why TDD?
Testing
Mocking
Executable documentation
No debugging
Tools, Frameworks, and Environments
Git
Virtual machines
Build tools
The integrated development environment
Unit testing frameworks
Hamcrest and AssertJ
Code coverage tools
Mocking frameworks
User interface testing
The behavior-driven development
Red-Green-Refactor - from Failure through Success until Perfection
Setting up the environment with Gradle and JUnit
The red-green-refactor process
The Tic-Tac-Toe game requirements
Developing Tic-Tac-Toe
Code coverage
More exercises
Unit Testing - Focusing on What You Do and Not on What Has Been Done
Unit testing
Unit testing with TDD
TestNG
Remote controlled ship requirements
Developing the remote-controlled ship
Design - If It's Not Testable, It's Not Designed Well
Why should we care about design?
Connect4
Test the last implementation of Connect4
The TDD implementation of Connect4
Mocking - Removing External Dependencies
Mocking
Mockito
The Tic-Tac-Toe v2 requirements
Developing Tic-Tac-Toe v2
Integration tests
BDD - Working Together with the Whole Team
Different specifications
Behavior-driven development
The Books Store BDD story
JBehave
Refactoring Legacy Code - Making it Young Again
Legacy code
The Kata exercise
Feature Toggles - Deploying Partially Done Features to Production
Continuous Integration, Delivery, and Deployment
Feature Toggles
A Feature Toggle example
Putting It All Together
TDD in a nutshell
Best practices
This is just the beginning