source: https://martinfowler.com/bliki/TestDouble.html