[Actually, I'm still car-trip-lagged enough that I actually thought of
two metaphors for why you might want to try JUnit on a green field project first. I didn't think this one nearly as well, but it's interesting enough that someone might be able to make good on what I'm trying to say...]
I think there's something deep in the summary message on the
JUnit project page on SourceForge (I didn't write it, so I can praise it):
"JUnit is a simple framework for writing and running automated tests. As a political gesture, it celebrates programmers testing their own software." There
is something political about JUnit. JUnit has an agenda. JUnit wants programmers to be able to test their own software. When JUnit finds itself in a room with objects that are cleanly encapsulated, each with its own responsibility, and clear ideas as to the right and wrong behavior in any given situation, JUnit can let its hair down, get to work, and have some fun.
However, there are other things to value than "programmers testing their own software". One example that's going on 10 years old is "programmers quickly producing dynamic database-backed web pages". At these parties, code can often be embedded directly into HTML, database connections are provided by implicit containers, and important functionality is put in global functions so it's available immediately wherever it's needed. JUnit goes to these parties, too, but at first, things can be a little uncomfortable.