If your code is going to be reviewed or used by someone else then it should be tested. If not at a class level, then at some higher level. I hate when people send their code out for review when it is obvious that they didn't take the time to bother that it works (or worse yet doesn't even compile).
I seldom find unit testing (at class level) of any value. I can easily do that kind of testing by walking through the debugger when I'm developing the code. I prefer to test classes that are supposed to work together as a unit. I get way more bang for the buck taking this approach. After all, I don't really care if functionX does exactly what I think it is supposed to do when it is by itself, but doesn't do what it NEEDS to do when working with the other classes in the system.