By David Heinemeier Hansson on April 30, 2014 The classical definition of a unit test in TDD lore is one that doesn't touch the database. Or any other external interface, like the file system. The justification is largely one of speed. Connecting to external services like that would be too slow to get the feedback cycle you need. That was probably true in 1997 when you were connecting to a mainfra