Skip to content

Exercises to practice breaking dependencies to test legacy code.

License

Notifications You must be signed in to change notification settings

growdai1y/dependency-breaking-katas

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dependency Breaking Katas

Exercises to practice breaking dependencies in legacy code to create tests for it.

Goal

We have some legacy code. We need to make changes. To make changes we need to introduce tests first. We might have to change some code to enable testing. We need to introduce so-called Seams (see Michael Feathers' Working Effectively with Legacy Code).

Changing code without test is risky, so we want to

  • Only change as little code as possible.
  • Rely on automated Refactoring tools as much as possible.
  • You must not change the public API of the class.

Assignments for Techniques

  • Parametrise Constructor
  • Subclass And Override Method
  • Extract And Override Call
  • Replace Global Reference With Getter
  • Extract And Override Factory Method

Planned

  • Extract Interface
  • Adapt Parameter

Task

Each task presents you with a class and some collaborators.

  • Bring this class under test. Make sure to cover all paths in the core logic.
  • There is an existing test class with a first test case which might or might not work.
  • You cannot change collaborators because they are used by other teams as well.

License

New BSD License, see license.txt in repository.

About

Exercises to practice breaking dependencies to test legacy code.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 34.1%
  • C# 25.1%
  • C 20.8%
  • PHP 14.2%
  • Batchfile 3.3%
  • Makefile 1.7%
  • Kotlin 0.8%