Refactoring Guidelines
Stay in the Green While Refactoring
Tests should test behavior, so there is no reason why we should break any tests during refactoring. If you break any tests while refactoring, undo, go back to green, and start over.
Don't change production code that is not covered by tests. If we need to refactor some code that has no tests, then start by adding behavior tests. We will cover this point in more detail in the next lesson, which deals with legacy code.
It may be that we have tests, but they are coupled with the implementation in a way that it is not possible to change the implementation without breaking the tests. In this case, we start refactoring by the tests, and once we have tests that are not coupled with the implementation, we can start refactoring the implementation.
Use IDE-automated refactoring to minimize text editing and risk—provided you trust your IDE automated refactors. Most IDEs try to keep your code compiling, and if they...