Your edit is one of the reasons. However, writing two or three functions in order to get a test to pass is something I frequently do. The functions are small, and usually have very little implementation at first; but I don't follow the "One Function - One Test" rule.
The rule I follow is: Every line of code you write is to make a failing test pass. If that means writing three new functions, so be it.