Find the Seam
Mock objects are a specific version of a more general technique for working with legacy code, which involves finding seams in the code and exploiting them to make testing the legacy functionality possible
A seam is a place where we can change our application’s behavior without changing the actual code. A mock object acts as a seam because adding the mock object, which happens in the test, changes the behavior of the code by mandating a specific response to a method call without executing the method. Again, the behavior of the method under test changes in the test environment without affecting behavior in production and without changing the existing development code.
It sounds magical, but the basic idea is simple and Ruby makes ...