Trip Service Kata


Inspired by Sandro Mancuso

Your Task

The objective is to test and refactor the legacy TripService class. The end result should be well-crafted code that expresses the domain. We do not need tests for collaborators (right now), we want to test only the logic contained in the TripService class.


  • We can’t change any existing code if not covered by tests. We can’tafford to break any existing behavior.
  • The only exception is if we need to change the code to add unit tests, but in this case, just automated refactorings (via IDE) are allowed.

Get the Code

On GitHub (This kata can be done using ABAP, Bash, C#, C++, Java, JavaScript, Kotlin, Objective C, PHP, Python, Ruby, Scala, Swift, TypeScript) If your favorite language is missing, feel free to create a pull request. Be sure the maintainer will be happy ;-)

Image credits

Image by Egga. It shows an exemplary flip chart to facilitate the kata.