The Extract Class refactoring shows the importance of having a good unit test suite as well as running it frequently during the refactoring. It is easy to overlook small things when moving code around, which could end up breaking the code. By running the tests often, we know immediately when we break something. This makes it easy to fix the mistake. Had we done the whole refactoring before running the tests, it would have not been clear which step in the refactoring broke the tests, and we would have to go back and debug the whole refactoring.
One more thing that we need to do is to adjust the tests after the refactoring is complete. In some refactorings, such as Extract Class, we may find that we have to also move tests to the new class. For instance, if we had any tests for the _get_closing_price_list
method, then we would move those tests over to the TimeSeries
class. In this case, since the method was not public, we didn't write tests for them and we didn't have...