Is difficult to
To me legacy code is simply code without tests .
Code without tests is bad code. It doesn't matter how well written it is; ... With tests, we can change the behavior of our code quickly and verifiably. Without them we really don't know if our code is getting better or worse.
Without tests
DO NOT
change the surface of a class
Create a test suite for it
How without changing the surface?
delegate to the rescue
interface seam
A seam is a place where you can alter behavior in your program without editing in that place .
Michael C. Feather