I tend to make things seem black and white when I don't really think they are. Tests written before the fact are the ones I find most useful, and I think it's one of the best programming disciplines to make a habit. When specs change, of course, the tests have to change too. And I agree, it is possible to create tests after the fact which are written to spec and don't take the code into account. They're certainly better than nothing.
--
Love justice; desire mercy.