I love this metaphor, but I disagree with your premise. For one thing, legacy code tends to be hard-to-work-with because it often has a hard dependency on a specific implementation (it acts like dependency injection is not a thing and reaches out and grabs its own dependencies). This means that mocking is actually difficult to impossible. In order to use mocks, you need to loosen up your code's death grip on a specific implementation, which will improve your code quality--and it provides a simple reference implementation of the dependency, which has huge documentation value and drastically increases the understanding of the person who built it.
And then, once you have your "Tourbus" component where it doesn't have a death grip on a specific road, you can pass in mocks that look like the road to any specific city, and you can quickly exercise the entire network and add checks for edge cases, like roads that run off of cliffs, that would be very difficult to test without mocking.