1 Sekforde Street, EC1R 0BE
London, England

In this Test Driven Development and refactoring course, you will learn how to apply test-driven development (TDD) and refactoring, apply the most popular open-source frameworks for TDD and use them within a popular IDE. You will learn how to think and apply test-driven design and programming and establish it as a consistent method for your development team.

You will see the value of reducing coupling in your code and learn how to break dependencies, so that tests can be run quickly in isolation. You'll learn how to apply dependency injection methods and how to create and inject alternate “test doubles”, including stubs, fakes, mocks, object factories/mothers. You will also learn to work with legacy code to “bring it under test” and apply TDD.

Finally, we will cover how refactoring is a disciplined design skill to improve the structure of code without changing its external behavior, the various “code smells” and the refactorings to clean them up and we will touch onto using an automated refactoring tool. You will also get a very brief introduction to Acceptance TDD—executable requirements with automated verification, the FIT framework and the Acceptance TDD methodology.


* apply TDD
* break dependencies and create “test doubles” (fakes, mocks, stubs, ...)
* inject dependencies with flexible techniques
* separate test set up code into object factories or “object mothers”
* identify code smells
* apply refactorings
* use an xUnit framework such as Junit
* bring legacy code “under test”
* define acceptance TDD and the FIT framework


* Test-Driven Development
* Method and motivation
* Writing tests first
* The TDD lifecycle
* Testing in an iterative and agile method
* Categories of TDD: unit, acceptance
* TDD tools and frameworks
* Testing in different architectural layers
* TDD Tools
* JUnit
* Unit TDD
* Practice with XUnit
* Code smells
* Refactorings, including Extract Method, Introduce Explaining Variable, and dozens more
* Test Doubles: Fakes, Stub and Mock Objects
* Integration vs. unit testing
* Setting up the test environment
* Mock generation tools
* Object factories
* Object Mother pattern
* Dependency injection
* Dependency injection with Spring
* Continuous Integration and TDD
* Information radiators for CI
* Why do people delay integration?
* Acceptance TDD with FIT
* TDD and Legacy Code
* Characterization tests
* The Legacy TDD life cycle

Official Website: http://skillsmatter.com/course/agile-scrum/refactoring-tdd

Added by Skills Matter on November 3, 2008

Interested 1