I've tried TDD on two projects so far. These are relatively small projects I've done myself over a few weeks, just to practice TDD.

Anyway, TDD is supposed to make refactoring simpler because you can see right away if you broke anything. However, if I so much as add a parameter to a function - perhaps one or two dozen unit tests need to be changed, for a function that is used only in a few places. Without unit tests I could just make that change, fix the couple of spots in my code that use that function, manually test a little, and I'm done. With a unit test framework, I spend far more time writing and maintaining tests than I do on the code itself (unit tests also constitute well over half of the total code). I know that I'm supposed to somehow reduce redundancy in the unit test framework - trying to make them share the same setUp code for example - but each unit test requires a slightly different setup because they each test slightly different things. Also, trying to set up some way for unit tests to share code to the fullest extent possble somehow makes the test framework seem sloppy and overly complex (like when I use mock objects).

Is it that TDD is simply unsuitable for such small projects? Or is it only beneficial when working in a team (although these difficulties make it seem it would be harder with a team)? Is a good TDD book going to address these issues? (I haven't found anything through google about people having similar difficulties).