This post originated from an RSS feed registered with Agile Buzz
by Kevin Rutherford.
Original Post: sensing variables
Feed Title: silk and spinach
Feed URL: http://silkandspinach.net/blog/index.xml
Feed Description: kevin rutherford on agile software development and life in macclesfield
Getting Serious about Preserving Behavior is a great little article by Mike feathers, in which he introduces a refactoring trick he calls sensing variables. The gist is this:
You want to refactor some code, but it's too ugly to test as it currently stands. So there's a danger that the refactoring will somehow inadvertently change behaviour. Mike suggestes introducing a new variable outside of the scope of the code under test, and then altering the code to report state into that variable. Now, write tests that check the values in the variable, under a variety of conditions. Those tests will tell us whether our subsequent refactorings have changed the variable's value - in other words, whether we have accidentally changed some deep behaviour somewhere. Very nice.